主键 数据类型选择
1、整数类型:整数通常是标识列最好的选择,因为快并且可以使用AUTO_INCREMENT。
2、字符串类型:应该避免使用字符串类型作为标识列,因为它们很消耗空间,并且通常比数字类型慢。
对于完全随机的字符串,例如MD5()、SHA1()或者UUID()产生的字符串会任意分布在很大的空间内,这会导致INSERT以及一些SELECT语句变得很慢。
以字符串作为主键不如递增的整数好用。
Mysql scheme设计
1、避免过多的列:Mysql的存储引擎API工作时需要在服务器层和存储引擎层之间通过行缓冲格式拷贝数据,然后在服务层将缓冲内容解码成各个列,这个操作代价是非常高的。
2、避免过多的关联。
3、避免使用枚举类型:需要使用枚举的地方应该用整数作为外键关联到字典表或者查找表来查找具体值。