20200624
结合阿里的mysql规范 必须定义主键, 默认为Id,整型自增(禁止使用varchar类型的主键) 禁止使用外键 单表超500w或数据量超过10G考虑分表 单条记录禁止超过8K,计算公式:中文列*3(utf8)+英文列*1 索引列必须定义为not null,并设计default值 浮点型用decimal 禁止存储blob,text类型的大文本,文件,图片,使用fastdfs之类的 禁止使用:存储过程、触发器、函数、视图、事件等MySQL高级功能 禁止使用子查询,建议将子查询转换成关联查询 什么时候用char 定长的char类型不容易产生碎片,适合md5,Y/N这种。 例如用CHAR(1)来存储只有Y和N的值,只需要一个字节,但是VARCHAR(1)却需要两个字节,因为还有一个记录长度的额外字节 注意:tinyint比char(1)效率更高 占用字节 有符号范围 无符号范围 tinyint 1 -128~127 0~255 smallint 2 -32768~32767 0~ 65535 int 4 -21亿~21亿 0~42亿 bigint 8 参考: https://www.jianshu.com/p/6f4c6141b275 来源: oschina 链接: https://my.oschina.net/cectsky/blog/4321610