使用explain,profiling 来进行sql语句的分析
在sql执行的时候,如何查看mysql的io操作
show status like “innodb_data_r%” //代表数据的读取 show status like “innodb_data_w%” //代表数据的写入 show status like “innodb_log_wr%” //代表日志写入磁盘 show status like “innodb_dblwr_wr%” //代表日志写入缓存 io次数计算 innodb_data_reads + innodb_data_writs + innodb_log_writes + innodb_dblwr_writs = io次数
查询数据表的情况
show create table_name
查询表索引的使用情况
show indexs from table_name
查询标的状态
show table statsu like "table_name"
desc table_name
定位查看sql执行
show full processlist
下面来一条测试sql
上面就是对sql的分析,可以根据结果做出相应的优化
上图中如果出现 Using temporary ;Using filesort代表sql语句查询未使用索引,全表扫描,查询中使用了临时表,代表sql该优化了