数据库性能差,需要优化
你发现
磁盘IO非常忙,看到的IOWAIT比较大
好吧,买硬盘,提升IOPS
确实提升了性能,30%
又发现
内存命中率比较低
OK,加大内存
确实提升了性能,30%
内存命中率比较低
OK,加大内存
确实提升了性能,30%
又发现
内存大了后,逻辑读太多,导致CPU比较忙,接近100%
OK,加大CPU
确实提升了性能 20%
内存大了后,逻辑读太多,导致CPU比较忙,接近100%
OK,加大CPU
确实提升了性能 20%
又发现,几个SQL的索引建立有问题
优化SQL,调整索引
提升了500%
优化SQL,调整索引
提升了500%
某天,跟应用方聊天发现,这几个SQL可以不要,应用升级后去掉。。。。。。。
优化数据库问题的方法论,一般应该从架构的最上级开始,然后往下
应用 数据库 主机 存储
如果这个顺序颠倒过来,就会非常容易搞错哪个是因哪个是果
如果一开始选择的是优化SQL,那么可能前面的东西都不用做了
应用 数据库 主机 存储
如果这个顺序颠倒过来,就会非常容易搞错哪个是因哪个是果
如果一开始选择的是优化SQL,那么可能前面的东西都不用做了
一般正常的步骤应该是:
优化应用,比如减少某些不必要SQL的执行,合并查询等
优化数据库,比如调整SQL,优化索引等
优化主机,增大内存,增加CPU
优化存储,增加磁盘,重新平衡数据分布
优化应用,比如减少某些不必要SQL的执行,合并查询等
优化数据库,比如调整SQL,优化索引等
优化主机,增大内存,增加CPU
优化存储,增加磁盘,重新平衡数据分布
在上层确实优化已经做到位,不能再优化的情况下,再考虑下层优化,这样基本能确保优化方向的正确性。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22034023/viewspace-761662/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22034023/viewspace-761662/