Rumah > pangkalan data > tutorial mysql > MySQL高级十一——慢查询

MySQL高级十一——慢查询

黄舟
Lepaskan: 2016-12-29 16:50:10
asal
1018 orang telah melayarinya

MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为慢查询。

1、查看时间限制

show variables like '%long%';
Salin selepas log masuk

就会看到:

+---------------------------------------------------+-----------+
| Variable_name                        | Value     |
+---------------------------------------------------+-----------+
| long_query_time                        | 10.000000 |
| max_long_data_size                     | 1048576   |
| performance_schema_events_waits_history_long_size | 10000     |
+---------------------------------------------------+-----------+
Salin selepas log masuk


如果查询超过long_query_time的时间就称为慢查询。

2、查看数据库的启动时间

show status like 'uptime%';
Salin selepas log masuk

就会看到

+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| Uptime                    | 76333 |
| Uptime_since_flush_status | 76333 |
+---------------------------+-------+
Salin selepas log masuk


3、查看查询语句条数

show status like 'com_Select';
Salin selepas log masuk

就会看到

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_select    | 1     |
+---------------+-------+
Salin selepas log masuk


4、获取连接数

show status like 'connections';
Salin selepas log masuk

就会看到

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Connections   | 2     |
+---------------+-------+
Salin selepas log masuk


5、设置慢查询的时间

set long_query_time = 1;
Salin selepas log masuk

6、以安全模式启动mysql服务,慢查询记录将会写入日志之中。

开启慢查询日志

在MySQL的配置文件中加以下参数

log-show-queries = D:/MySQL/Log/mysqld-slow-query.log

long-query-time = 5

log-queries-not-using-indexes

阐述:

有关慢查询日志功能存放位置,该目录文件一定要有写的权限。可以用设置,系统会给一个缺省的文件host_name-show.log

long_query_time

SQL执行时间阀值,默认为10秒

注意一下三点:

1、设置long_query_time这个阀值后,mysql数据库会记录运行时间超过该值的所有SQL语句,但对于运行时间正好等于long_query_time的情况并不会被记录下来。也就是说,在mysql源码里是判断大于log_query_time,而非大于等于。

2、从MySQL5.1开始,long_query_time开始以微秒计算,这样精确记录SQL的运行时间。

3、建议该时间不应太小或太大,最好在5-10秒之间。当然可以根据自己的情况来定。

log-queries-not-using-indexes

如果运行的SQL语句没有使用索引,则mysql数据库同样会将这条SQL语句记录到慢查询日志文件之中。

 以上就是MySQL高级十一——慢查询的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!


Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan