Mysql高性能笔记
影响数据库的因素
sql查询速度
服务器硬件
网卡流量
磁盘IO
超高的QPS(每秒查询速度)和TPS(每秒事务量)
风险:效率底下的SQL
假设只有一个CPU,让我们来看下面这张图:
image.png
可以看到对比,100ms的低效率的慢查询看似不大,但是对数据库压力很大。提高数据库性能之一就是优化那些效率低下的sql,提高性能,提高QPS。
大量的并发和超高的CPU使用率
风险:
大量的并发:数据库连接数被沾满(max_connections默认是100,在实际生产中我们要修改变大)
超高的CPU使用率:因为CPU资源耗尽而出现宕机。
磁盘IO
风险:
磁盘IO性能突然下降(使用更快的磁盘设备)
其他大量消耗磁盘性能的计划任务(调整计划任务,做好磁盘维护)。
网卡流量
风险:
网卡IO被沾满(1000Mb/8约等于100MB)
如何避免:
减少从服务器的数量
进行分级缓存
避免使用’select *‘
分离业务网络和服务器网络
还有什么会影响数据库性能?
什么样的表可以被称为大表:
记录行数巨大,单表超过千万行