任何小而简单的东西就是最好的,不要让问题过度复杂化,解决问题的最好办法是先简化问题。
简单列举一些设计原则:
- 避免过度设计。每一个表都要保持尽量简单,尽量不要设计出列很多的表,列太多就说明你的领域不够清晰,该先想清楚怎么把领域划分清楚了。表结构越简单,MySQL 能够展现出来的性能也越好
- 使用小而简单的数据类型
- 尽可能避免使用 NULL。NULL 比空字符串更占用空间,NULL 不能用来比较(对 NULL 进行 >=< 等操作的结果永远是 false),用 count 进行统计的结果中还不包含 NULL。
- 用相同的数据类型存储相似或相关的值。做多表关联查询,关联的键类型不同会让这个查询变的巨慢,因为需要对每一行匹配时做类型转换
- 需要注意可变长字符串,在临时表中和进行排序时,会按照最大长度分配内存
- 避免使用 MySQL 已经或者将要遗弃的属性。
先列举这些,之后再想到的话再补充到这里。
参考:《高性能 MySQL》第四章