不使用索引的日志查询- MySQL

vshtjzan  于 2023-03-11  发布在  Mysql
关注(0)|答案(4)|浏览(120)

我使用的MySQL服务器版本:5.5.8-log MySQL社区服务器(GPL)
我想记录查询,这是不使用索引和缓慢太!
我正在复制我的my.ini设置。
[mysqld]
端口=3306
日志=“电子邮件:/wamp/日志/生成查询.日志”
日志慢速查询
长查询时间= 1
慢速查询日志= 1
慢速查询日志文件=“电子邮件:/wamp/日志/慢速查询. log”
我需要做什么改变?

zphenhs4

zphenhs41#

log_queries_not_using_indexes =1 //(or Yes)(来自mysql)

f8rj6qna

f8rj6qna2#

可能对Linux用户有用。(测试:Ubuntu 16.04版)
在终端中获得root并编辑mysql配置

su
vim /etc/mysql/conf.d/mysql.cnf

[mysqld]
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow-query.log
long_query_time=1
log_queries_not_using_indexes=1

添加日志文件并重新启动mysql服务器

touch /var/log/mysql/slow-query.log
chown mysql:adm /var/log/mysql/slow-query.log
chmod 640 slow-query.log
service mysql restart

使用SQL查询测试慢速日志记录

/* Activate query log - Maybe useful to show errors (not necessary) */
SET GLOBAL SLOW_QUERY_LOG=ON;

/* Check if slow query log is working */
SELECT SLEEP(2);
o3imoua4

o3imoua43#

未使用索引的日志查询

Command-Line Format --log-queries-not-using-indexes
Option-File Format  log-queries-not-using-indexes
Option Sets Variable    Yes, log_queries_not_using_indexes
Variable Name   log_queries_not_using_indexes
Variable Scope  Global
Dynamic Variable    Yes
    Permitted Values
Type    boolean

是否将不使用索引的查询记录到慢速查询日志中。请参见第5.2.4节,

elcex8rz

elcex8rz4#

除了a1ex07的答案之外,您还可以使用shell命令mk-query-digest输出正在运行的查询的报告**,而不使用日志**。
查看完整方法:https://web.archive.org/web/20131123010403/http://www.xaprb.com/blog/2009/08/18/how-to-find-un-indexed-queries-in-mysql-without-using-the-log/
正如本文中提到的,还可以按表对查询进行分组,执行--group-by tables --report-format profile
用于快速检测未索引查询。

相关问题