沈剑老师的MySQL军规

MySQL军规适应的业务场景

  • 互联网前台业务
  • 数据量较大
  • 并发量较大

在适应业务场景之下,系统

  • 响应时间,吞吐量,扩展性优先
  • 数据库往往最容易成为系统瓶颈

解放数据库,降数据库磁盘IO,将数据库CPU成为架构设计的核心方向之一

如何降低数据库磁盘IO

  • 读多写少用缓存
  • 前台与后台分离架构
  • 最优质的SQL
  • 只让数据库做它擅长的事情:存储和索引,少干其它事情
  • 大对象,原则上不要存储在数据库里

如何降低数据库CPU计算

  • 数据库非必须的CPU计算,尽量挪到服务处去处理
  • 禁止使用外键约束,由服务保障完整性
  • 禁止使用存储过程,视图,触发器,event

如何降低磁盘IO+CPU计算

  • 尽量不使用join,如果要用,必须保证字符集属性类型与长度相同,并且要建立索引
  • 禁止负向查询,与%开头的模糊查询
  • 字段类型,与查询字段赋值类型必须相同
  • 禁止在列上进行函数或表达式计算
  • 字段必须定义为not null,并提供默认值
  • 联合索引,区分度最高的放在最左边
  • 联合索引,列个数不要超过5个

 

以上是MySQL军规的主要内容,还有部分知识点,没有列出来。这个是针对MySQL的军规,实际上在oracle、postgresql等关系型数据库中都有一定的通用性,所以记录下来。希望对看到的你有所帮助。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值