MySQL数据库设计SQL规范.docMySQL数据库设计SQL规范1命名规范1、库名、表名、字段名必须使用小写字母并采用下划线分割;2、库名、表名、字段名支持最多32个字符,易于辨识以及减少传输量不要超过32;3、库名、表名、字段名禁止使用MySQL保留关键字;4、临时库、临时表名必须以tmp为前缀并以日期为后缀;5、备份库、备份表名必须以bak为前缀并以日期为后缀;----------------------------------------------------------------2基本规范1、,支持事务,行级锁,更好的恢复性,高并发下性能更好,对多核,大内存,ssd等硬件支持更好;2、表字符集使用UTF8使用utf8字符集,如果是汉字,占3个字节,但ASCII码字符还是1个字节;统一,不会有转换产生乱码风险;3、所有表都需要添加注释;4、不在数据库中存储图片、文件等大数据;5、禁止在线上做数据库压力测试;6、禁止从测试、开发环境直连线上数据库;-----------------------------------------------------------------3库表设计规范1、尽量避免使用分区表MySQL的分区表实际性能不是很好。2、拆分大字段和访问频率低的字段,分离冷热数据3、采用合理的分库分表策略,推荐使用HASH进行分表,表名后缀使用十进制数,下标从0开始首次分表尽量多的分,避免二次分表,二次分表的难度和成本较高4、按日期时间分表需符合YYYY[MM][DD][HH格]式5、单表字段数控制在20个以内6、一条完整的建表语句中应包含必要的字段、主键、合理的索引(综合代码中所有的条件语句创建合理的索引,主键必须要有)-------------------------------------------------------------------4索引设计规范索引是一把双刃剑,它可以提高查询效率但也会降低插入和更新的速度并占用磁盘空间1、单张表中索引数量不超过5个;2、单个索引中的字段数不超过5个;对字符串使用前缀索引,前缀索引长度不超过10个字符;如果有一个CHAR(200)列,如果在前10个字符内,多数值是惟一的,那么就不要对整个列进行索引。对前10个字符进行索引能够节省大量索引空间,也可能会使查询更快;3、表必须有主键,不使用UUID、MD5、HASH作为主键,尽量不选择字符串列作为主键;主键建议选择自增id;4、创建复合索引时区分度较大的字段放在最前面;不在低区分度的字段上创建索引,例如“性别”;5、避免冗余或重复索引合理创建联合索引(避免冗余),index(a、b、c)相当于index(a)、index(a、b)、index(a、、b、c);6、索引不是越多越好,按实际需要进行创建每个额外的索引都要占用额外的磁盘空间,并降低写操作的性能7、不在索引列进行数学运算和函数运算;8、尽量不要使用外键外键用来保护参照完整性,可在业务端实现,对父表和子表的操作会相互影响,降低可用性;9、不使用%前导的查询,如like“%xxx”,无法使用索引;10、不使用反向查询,如notin/notlike无法使用索引,导致全表扫描全表扫描导致bufferpool利用降低----------------------------
MySQL数据库设计SQL规范 来自淘豆网m.daumloan.com转载请标明出处.