There are many poorly designed database application in use today. There are several reasons including lack of expertise, or lack of experience in MySQL specifically. This presentation will aim to educate an attendee for the top 20 things every database design should have. As a consultant I see these common mistakes regularly, some of which can easily be corrected without any code changes. Some topics include: Why is normalization important? When do you optimize your normalized schema? Why NOT NULL is important? Why VARCHAR is bad? Disk = Memory = Performance? MySQL has 9 different Numeric data types, Oracle has 1. Why? Think transactions, think strict data integrity. Leverage the power of covering indexes. Query Cache, friend or enemy.