我是靠谱客的博主 哭泣酸奶,最近开发中收集的这篇文章主要介绍mysql规范,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

命名规范

库名,表名,列名必须用小写,采用下划线分隔;须见名知义,长度不要超过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规范所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部