| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> MySQL进阶:sql性能分析 -> 正文阅读 |
|
[大数据]MySQL进阶:sql性能分析 |
1:sql的执行次数分析:sql: show global status like 'com_______' 解释:通过该命令可以查看当前数据库下的增删改查的使用次数,来采取对应的优化处理. value值就是执行的次数. 2:慢查询日志
? ? ? 慢查询日志会记录超出自己设置的时间还没有执行完毕的sql.? ?默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。 可以看到, 默认情况下slow_query_log的值为OFF,表示慢查询日志是禁用的,可以通过设置slow_query_log的值来开启 开启慢查询日志sql:? 设置慢查询的超时时间:?set global long_query_time=2; ?注意: 使用set global slow_query_log=1开启了慢查询日志只对当前数据库生效,MySQL重启后则会失效。如果要永久生效,就必须修改配置文件my.cnf 找到日志文件打开,就会看到如上图所示,记录了超时的sql信息. 3:profile分析1.查看profile是否可用? SELECT @@profiling;
SET profiling = 1; 3: 查看当前会话下的所有sql执行时间: ?show profiles; ?4:查看具体sql的每个步骤消耗时间 ?show profiles for query? xx;? ?这个xx是上图的query_id ?可以看到sql每个步骤执行消耗了多长时间? 注意:profile是用户级变量,每次都得重新启用 ? ?5:查看具体sql的cpu消耗时间 ?show profiles cpu? for query? xx;? ? 比上个步骤多了一个cpu字段 ? ? sql的性能分析到此就可以了,剩下的sql优化还需要结合?explain 或者 索引的相关知识进行进一步优化. 可以参考一下我的另外两篇文章: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 4:25:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |