Before you begin the development of your application, both logical and physical database design must be right there. Once the application has been implemented, it's simply too late to fix an inaccurate database design, leaving no other choice than buying a larger amount of fast, expensive hardware to cope with the problem.
Designing a database structure is usually the task of a database administrator. However, it's not rare in today's tight-budget world that the software architect takes care to design the database schemas as well. That's why you should be aware of a few basic concepts like database normalization, database partitioning, and good column indexing.
One of the most basic optimizations is to design your tables to take as little space on the disk as possible. This makes disk reads faster and uses less memory for query processing.
In order to reduce the amount of space used by your tables, you should first choose,...