Mysql 架构及优化之-Sql语句优化步骤

查看mysql状态及配置

show status 查看当前连接的服务器状态

show global status 查看mysql服务器启动以来的状态
show global variables 查看mysql服务器配置的变量

  • 增删改的统计

查看 insert delete update select查询总数
show global status like "com_insert%"

《Mysql 架构及优化之-Sql语句优化步骤》

show global status like "com_delete%"

《Mysql 架构及优化之-Sql语句优化步骤》

show global status like "com_update%"

《Mysql 架构及优化之-Sql语句优化步骤》

show global status like "com_select%"

《Mysql 架构及优化之-Sql语句优化步骤》

  • Innodb影响行数

show global status like "innodb_rows%";

《Mysql 架构及优化之-Sql语句优化步骤》

  • mysql连接总次数

show global status like "connection%";
包括成功和不成功的连接
《Mysql 架构及优化之-Sql语句优化步骤》

  • mysql已经工作的秒数

show global status like "uptime%";

《Mysql 架构及优化之-Sql语句优化步骤》

  • 查看mysql慢查询次数

show global status like "%slow%";

《Mysql 架构及优化之-Sql语句优化步骤》

  • 查看慢查询日志相关设置

show global variables like "%slow%";
log_slow_queries = on slow_query_log = on 表明慢查询日志已经开启
slow_query_log_file 慢查询日志文件的路径
《Mysql 架构及优化之-Sql语句优化步骤》

show global variables like "%long_query%";
查看慢查询执行时间粒度

《Mysql 架构及优化之-Sql语句优化步骤》

mysql常规日志开启配置

  • 配置my.conf

general_log = on                                                               
general_log_file = /home/mysql-run/mysql.log

《Mysql 架构及优化之-Sql语句优化步骤》
表明日志已经开启

慢查询日志开启配置

  • 配置my.conf

vim /etc/my.cnf

slow-query-log = on 
slow_query_log_file  =  /home/mysql-run/mysql_slow.log
long_query_time = 10  #慢查询执行时间记录粒度 默认是10秒
log_queries_not_using_indexes = off #记录没有使用索引的查询 不论执行有多块
  • 查看慢查询日志

cat mysql_slow.log

《Mysql 架构及优化之-Sql语句优化步骤》

解释执行效率较低的sql

  • exiplain sql

或者使用desc sql

《Mysql 架构及优化之-Sql语句优化步骤》

select_type : 单表查询
rows: 查询扫描的行数
key:用到的索引
key_length:用到的索引的长度
extra: using index 表示使用索引过滤掉不需要的行

分析表索引

myisam 索引存放于 .MYI文件中 与数据文件.MYD 分开 myisam索引可以压缩
Innodb表中索引和数据存放同一个文件中共享表空间

更多索引相关知识请点击:https://segmentfault.com/a/1190000005087951

    原文作者:Julylovin
    原文地址: https://segmentfault.com/a/1190000005342547
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞