概述
命名规范
库名,表名,列名必须用小写,采用下划线分隔;须见名知义,长度不要超过32字符
库备份必须以bak为前缀,以日期为后缀;从库必须以-s为后缀;备库必须以-ss为后缀
表设计规范
个数:单实例表个数必须控制在2000个以内;单表分表个数必须控制在1024个以内
外键:禁止使用外键,如果要保证完整性,应由应用程式实现
主键:表必须有主键,推荐使用UNSIGNED整数为主键
子表:建议将大字段,访问频度低的字段拆分到单独的表中存储,分离冷热数据
列设计规范
个数:单实例表个数必须控制在2000个以内;单表分表个数必须控制在1024个以内
外键-主键-子表:禁止使用外键,表必须有主键,大字段访问频率低的字段拆分到子表中
必须把字段定义为NOT NULL并设默认值(null存储空间大,且有null的列在使用索引时统计等业务复杂)
索引规范
唯一索引使用uniq_[字段名]来命名
非唯一索引使用idx_[字段名]来命名
单张表索引数量建议控制在5个以内
组合索引字段数不建议超过5个
不建议在频繁更新的字段上建立索引
理解组合索引最左前缀原则,避免重复建设索引,如果建立了(a,b,c),相当于建立了(a), (a,b), (a,b,c)
对于中表或者大表,通过建立合适的索引能够极大地提高查询速度;但是小表或者超大表不建议建立
SQL规范
禁止使用select *,只获取必要字段
insert必须指定字段,禁止使用insert into T values()
禁止在where条件列使用函数或者表达式,因导致不能命中索引,全表扫描
禁止负向查询以及%开头的模糊查询 解读:导致不能命中索引,全表扫描
禁止大表JOIN和子查询
同一个字段上的OR必须改写问IN,IN的值必须少于50个
应用程序必须捕获SQL异常
数据类型
选择的原则是:在满足使用的前提,要小而简单。
整数类型选择:tinyint-8、Smallint-16、int-32、Mediumint-32、Gibint-64 存储空间固定,设置位数无效
时间格式选择:TimeStamp-4个-从1970到2034-常用,DateTime-8个字节-时间从1001到9999,精度均为秒
小数点选择:一般使用倍数扩增,bigint存储
字符串选择:CHAR_定长, VARCHAR_变长, BLOB_二进制, TEXT_字符串文件
CHAR的优势是经常更新不会产生太多的碎片,用于存储定长的内容。
最后
以上就是哭泣酸奶为你收集整理的mysql规范的全部内容,希望文章能够帮你解决mysql规范所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复