操作系统为ubuntu 16.04
MySQL版本:MySQL Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using EditLine wrapper
在我的系统中
/etc/mysql/ -> ls
conf.d debian.cnf debian-启动my.cnf my.cnf.fallback mysql.cnf mysql.conf.d
在该文件中,我需要配置以获取通用查询日志和慢查询日志。
我看到有一个很好的选项,如何启用日志慢查询和没有索引的查询:
SET GLOBAL log_queries_not_using_indexes=1;
SET GLOBAL log_slow_queries=1;
好的,好的,但是它们似乎都写入了我在my.cnf配置文件中指定的同一个日志文件:
[mysqld]
long_query_time = 1
log-slow-queries = /var/log/mysql/mysql-slow.log
我使用mysqldumpslow查看最慢的查询,但是我需要做什么才能单独查看那些没有索引的查询呢?
我需要打开/启用它。我在网上找到了一些信息,但现在很困惑,我不知道从哪里开始。
这就是我到目前为止所拥有的。我以超级用户身份登录到MySQL,并执行了以下操作:
show variables like '%log%';
并得到了:
Variable_name | Value |
+---------------------------------+----------------------------------+
| back_log |
我正在使用一个时间分析器来优化我的python脚本。事实证明,mysql查询在我的python脚本中占用了大量时间。总共只有19个查询。据cProfile报道,这19个mysql查询耗时超过7.44秒。
下面是完整的脚本代码,其中mysql查询和相应的查询时间以秒为单位。
$ python -m cProfile -s time myscript.py
MYSQL Queries
SELECT column FROM table WHERE foreign_key = 1 AND somecolumn='val1'
0.378623008728
SELECT column F