大佬教程收集整理的这篇文章主要介绍了MySQL问题定位-性能优化之我见,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
首先任何一个数据库不是独立存在的,也不是凭空想象决定出来的。
数据库的架构离不开应用的场景。所以,为了解决某些深入的问题,首先你得掌握数据库的原理与架构。原理掌握得越深入,越能帮助你定位复杂与隐藏的问题。
其次,DBA不能只局限于数据库本身。因为问题的来源,很多时候都来自用户表象(比如说用户反映查询某个东西很慢)。这个表象 问题,可能来自从应用到数据库,到OS,存储等方面。或者是网络链路的任一环节等。
最后,DBA常需要关注的层面,除了应用,更重要的还有OS硬件相关的层面。如内存,CPU,磁盘等。
图1即为MySQL的逻辑架构图,可以简单地归结为四层结构:
第一层为客户端连接层,主要是做一些连接处理、权限认证、安全连接等处理。
第二层为服务管理层,实现了诸如SQL接口、解析、优化、缓存以及备份恢复、复制等核心功能。
第三层为插件存储引擎层,这是MySQL区别于其它数据库系统如Oracle、MSSQL SERVER最重要的一点,MySQL中数据的存储和提取最终是由存储引擎来实现的,不同的存储引擎存取数据的方式不一样,它们通过统一的API与服务层进行通信。
第四层为数据存储层,确切地说它不属于MySQL系统,只是MySQL生成的数据、日志等文件最终是要保存在磁盘文件系统中的。
@H_938_0@mySQL定位问题关注方面
数据库层面
OS层面
有图表的情况下,尽量多通过图表方式来查看指标变化趋势。所谓一图顶千言。
@H_938_0@mySQL定位问题思路与方法排除法
搜索路径(知识爆炸的时代,谁也不可能记住所有的问题)
SQL及索引优化
系统配置优化
硬件配置优化
注:通过下图可以看出,该金字塔中,优化的成本从下而上逐渐增高,而优化的效果会逐渐降低。
所谓性能优化,在大部分情况而言,就是找到导致性能的瓶颈所在,并加以解决。
某部门系统从OracLE数据库迁移到MySQL,碰到了严重的性能问题。实测TPS不足OracLE DB的30%。
我的性能优化过程步骤:
采用排除法
查看网络流量,抓取数据包,发现应用流量很小。
代码排查,Oracle以前用sequence。MySQL不支持,应用代码实现生成ID。
这段代码有问题,出现锁争用,导致应用流量一直很小。
以上是大佬教程为你收集整理的MySQL问题定位-性能优化之我见全部内容,希望文章能够帮你解决MySQL问题定位-性能优化之我见所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。