【MySQL】MySQL数据类型选择 与 阿里巴巴MySQL规范解读概要
(1)小数类型为 decimal,禁止使用 float 和 double
(2)如果存储的字符串长度几乎相等,使用 char 定长字符串类型
(3)单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表
(4)业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一索引
(5)超过三个表禁止 join。需要 join 的字段,数据类型保持绝对一致;多表关联查询时, 保证被关联的字段需要有索引。
(6)页面搜索严禁左模糊或者全模糊,如果需要请走搜索引擎来解决。
(7)不要使用 count(列名) 或 count(常量)来替代 count(*)
(8)禁止使用存储过程,存储过程难以调试和扩展,更没有移植性。
(9)in 操作能避免则避免,若实在避免不了,需要仔细评估 in 后边的集合元素数量,控制在 1000 个之内。
(10)存储字符集推荐使用 utf8,如需存储表情,那么选择 utf8mb4
MySQL数据类型选择建议
在MySQL中,选择正确的数据类型,对于性能至关重要。一般应该遵循下面两步:
(1)确定合适的大类型:数字、字符串、时间、二进制
(2)确定具体的类型:有无符号、取值范围、变长定长等
在MySQL数据类型设置方面,尽量用更小的数据类型,因为它们通常有更好的性能,花费更少的硬件资源。并且,尽量把字段定义为NOT NULL,避免使用NULL!
避免使用NULL的原因: