mysql数据库设计规范

 

命名规范:

1.小写字母和下划线

2.禁止使用MySQL保留关键字(http://dev.mysql.co/doc/refman/5.7/en/keywords.html)

3.见名识意,不超过32个字符

4.临时表以tmp为前缀并以日期为后缀

5.备份表以bak为前缀并以日期为后缀

6.存储相同数据的列名和列数据必须一致

基本设计规范:

1.MySQL5.5之前Myisam是默认搜索引擎,现在所有表必须使用Innodb存储引擎(失误,行级锁,更好的恢复性,高并发下性能更好)

2.数据库和表的字符集统一使用UTF8(汉字占3个字节)

3.所有表和字段都需要添加注释(数据字典的维护)

3.控制单表数据量的大小(控制在500万行数据)(实际上取决于存储设置和文件系统)(历史数据归档和分库分表)

4.谨慎使用分区表(物理上为多个文件,逻辑上为一个表,谨慎选择分区键,建议物理分表)

5.冷热分离,减少表的宽度(最大4096列,每行不超过),(为了减少磁盘IO,保证热数据的内存缓存命中率)

6.禁止在表中建立预留字段(对类型进行修改,会对全表进行加锁)

7.禁止存储图片和文件等二进制数据

8.禁止在线上做数据库压力测试

9.禁止从开发环境,测试环境直连生产环境数据库

索引设计规范:

1.不要滥用索引(单张表索引不超过5个,每张表都有主键,不使用频繁更新频繁的列作为主键,不使用多列主键,不使用UUID,MD5,HASH,字符串作为主键、建议自增ID值)

2.常见的索引列建议:select、update、delete语句的where从句中的列,包含在order by 、group by、distinct中的字段,多表join的关联列

3.索引列的顺序:区分度最高的列放在联合索引的最左侧,尽量把字段长度最小的列放在联合索引的最左侧,使用最频繁的列放在联合索引的左侧

4.避免建立冗余和重复索引

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值