mysql 高性能优化规范建议

一、数据库命名规范

1.所有数据库对象名称必须使用小写字母,并且以下划线分割。

2.所有的数据库对象名称禁止使用MySQL保留关键字(如果表名中包含关键字查询时,需要加单引号)。

3.数据库对象的命名要做到见名识意,并且最好不超过32个字符。

4.临时库表必须以tmp_为前缀,并以日期为后缀。备份表必须以bak_为前缀,并以日期为后缀。

5.所有存储相同数据的列名和列类型必须一致。

二、数据库基本设计规范

1.所有的表必须使用InnoDB存储引擎:

没有特殊要求(列存储、存储空间数据)的情况下,所有表必须使用InnoDB引擎(5.5之前默认MyISAM,5.5之后默认InnoDB),

因为InnoDB支持事务,支持行级锁,在高并发下性能更好,有更好的安全恢复。

2.数据库和表的字符集统一使用UTF-8:

兼容性更好,统一字符集可以避免由于字符集转换产生的乱码,不同的字符集比较前需要转换会造成索引失效,如果数据库中有存储emoji表情的需要,字符集需要采用utf8mb4字符集。

3.所有表和字段都需要添加注释:

使用commen从句添加表和列的备注,从一开始就进行数据字典的维护。

4.尽量控制单表数据量的大小,建议控制在500万以内:

500万不是mysql数据库的限制,过大会造成修改表结构,备份恢复都有很大的问题。

可以用历史数据归档,分库分表等手段来控制数据量大小。

5.谨慎使用mysql分区表:

分区表,在物理上表现为多个文件,在逻辑上表现为一个表。

谨慎选择分区键,跨分区查询效率可能更低;建议采用物理分表的形式管理大数据。

6.尽量做到冷热数据分离,减小表的宽度:

MySQL限制每个表最多存储4096列,并且每行数据的大小不能超过65535字节。

减少磁盘IO,保证热数据的内存缓存命中率,更有效的利用缓存,避免读入无用的冷数据。经常使用的列放到一个表中。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值