20200624

馋奶兔 提交于 2020-08-05 22:41:57

结合阿里的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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!