1)数据库的设计
1>尽可能使用更小的整数类型.(mediumint就比int更合适>
2>尽可能的定义字段为not null,除非这个字段需要null.
3>如果没有用到变长字段的话比如varchar,那就采用固定大小的纪录格式比如char.
4>表的主索引应该尽可能的短.
5>只创建确实需要的索引。索引有利于检索记录,但是不利于快速保存记录。如果总是要在表的组合字段上做搜索,那么就在这些字段上创建索引。索引的第一部分必须是最常使用的字段.
6>所有数据都得在保存到数据库前进行处理。
7>所有字段都得有默认值。
8>在某些情况下,把一个频繁扫描的表分成两个速度会快好多。
2)应用的优化
1>explain 复杂的SQL语句。
2>如果两个关联表要做比较话,做比较的字段必须类型和长度都一致.
3>LIMIT语句尽量要跟order by或者 distinct.这样可以避免做一次full table scan.
4>如果想要清空表的所有纪录,建议用truncate table tablename而不是delete from tablename.
5>使用load data infile来导入大量数据,这比单纯的indert快好多.
6>经常OPTIMIZE TABLE 来整理碎片.
7>还有就是date 类型的数据如果频繁要做比较的话,尽量保存在unsigned int 类型比较快。
3)硬件的优化
1>把数据分开存放到多个磁盘中,这样能加快搜索时间.
2>数据存放在主内存中;增加CPU的个数来处理数据。