MySQL军规适应的业务场景
- 互联网前台业务
- 数据量较大
- 并发量较大
在适应业务场景之下,系统
- 响应时间,吞吐量,扩展性优先
- 数据库往往最容易成为系统瓶颈
解放数据库,降数据库磁盘IO,将数据库CPU成为架构设计的核心方向之一
如何降低数据库磁盘IO
- 读多写少用缓存
- 前台与后台分离架构
- 最优质的SQL
- 只让数据库做它擅长的事情:存储和索引,少干其它事情
- 大对象,原则上不要存储在数据库里
如何降低数据库CPU计算
- 数据库非必须的CPU计算,尽量挪到服务处去处理
- 禁止使用外键约束,由服务保障完整性
- 禁止使用存储过程,视图,触发器,event
如何降低磁盘IO+CPU计算
- 尽量不使用join,如果要用,必须保证字符集属性类型与长度相同,并且要建立索引
- 禁止负向查询,与%开头的模糊查询
- 字段类型,与查询字段赋值类型必须相同
- 禁止在列上进行函数或表达式计算
- 字段必须定义为not null,并提供默认值
- 联合索引,区分度最高的放在最左边
- 联合索引,列个数不要超过5个
以上是MySQL军规的主要内容,还有部分知识点,没有列出来。这个是针对MySQL的军规,实际上在oracle、postgresql等关系型数据库中都有一定的通用性,所以记录下来。希望对看到的你有所帮助。
本文介绍了适用于高并发、大数据量业务场景的MySQL军规,重点在于如何优化数据库响应时间、吞吐量和扩展性。主要措施包括使用缓存减少磁盘IO,优化SQL查询,避免不必要的数据库计算,限制join操作,以及合理设计索引。这些原则不仅适用于MySQL,也普遍适用于Oracle、PostgreSQL等其他关系型数据库。
1348

被折叠的 条评论
为什么被折叠?



