分析trace中的执行计划。可以有效分析建的索引为什么没有走。查看优化器如何选择执行计划,获取每个可能的索引选择的代价。
TRACE 字段中整个文本大致分为三个过程。
准备阶段:对应文本中的 join_preparation
优化阶段:对应文本中的 join_optimization
执行阶段:对应文本中的 join_execution
使用时,重点关注优化阶段和执行阶段。
索引字段会作用在查询和排序时,有排序字段时考虑跟查询一块建立组合索引
在MsSQL Server中我们要追踪SQL,只需要开启MS SQL中的事件追踪器(SQL Server Profiler)就可以了,而且设置非常的方便。但在MySQL中要实现类似功能需要做些处理,而且 *** 作也比较繁琐 —— 鼠标党,被MS毁了。
要启用MySQL的Sql Trace,需要启用查询日志功能,各个版本 *** 作不一,下面简要说明:
在MySql5.1.12之前
在my.cnf或者my.ini中的[mysqld]节下配置:log = /path/for/file/live-query.log
而这些所有的参数都是可以在线设置的,也就是说,如果你不想因为修改设置而重启MySql的话,那么在线设置应该是个更好的选择,在进入MySql的 *** 作中:
--这里按照最新版本来设置--查询关于log的设置
SHOW VARIABLES LIKE 'general_log%'
/×
返回结果类似:
+------------------+------------------------------------------------------------
------------------+
| Variable_name | Value
|
+------------------+------------------------------------------------------------
------------------+
| general_log | OFF
|
| general_log_file | dev-mc.log
|
+------------------+------------------------------------------------------------
------------------+
2 rows in set (0.00 sec)
注意,general_log_file 的默认值是'机器名'.log
*/
-- 开启日志
SET GLOBAL general_log ='ON'
-- 设置日志的文件路径:本例在Windows下
SET GLOBAL general_log_file='D:/MySql/live-query.log'
-- 设置完之后,就已经生效了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)