Lever's Castle

MySQL schema 设计原则

July 05, 2019

任何小而简单的东西就是最好的,不要让问题过度复杂化,解决问题的最好办法是先简化问题。

简单列举一些设计原则:

  1. 避免过度设计。每一个表都要保持尽量简单,尽量不要设计出列很多的表,列太多就说明你的领域不够清晰,该先想清楚怎么把领域划分清楚了。表结构越简单,MySQL 能够展现出来的性能也越好
  2. 使用小而简单的数据类型
  3. 尽可能避免使用 NULL。NULL 比空字符串更占用空间,NULL 不能用来比较(对 NULL 进行 >=< 等操作的结果永远是 false),用 count 进行统计的结果中还不包含 NULL。
  4. 用相同的数据类型存储相似或相关的值。做多表关联查询,关联的键类型不同会让这个查询变的巨慢,因为需要对每一行匹配时做类型转换
  5. 需要注意可变长字符串,在临时表中和进行排序时,会按照最大长度分配内存
  6. 避免使用 MySQL 已经或者将要遗弃的属性。

先列举这些,之后再想到的话再补充到这里。


参考:《高性能 MySQL》第四章


Lever

痕迹
没有过去,就没法认定现在的自己