mysql执行耗时

mysql执行耗时

img

1.sql执行频率

在这里插入图片描述

模糊匹配

在这里插入图片描述


,我们可以查看到当前数据库到底是以查询为主,还是以增删改为主,从而为数据库优化提供参考依据。 如果是以查询为主,那么就要考虑对数据库的索引进行优化了

2.慢日志开启

慢查询日志记录了执行时间超过指定参数(long_query_time,单位:秒,默认10秒)的所有 SQL语句的日志。 MySQL的慢查询日志默认没有开启,需要我们手动的开启,我们可以查看一下系统变量 slow_query_log

在这里插入图片描述

如果要开启慢查询日志,需要在MySQL的配置文件(/etc/my.cnf)中配置如下信息:

1
2
3
4
5
6
7
8
9
10
11
12
-- 1.开启MySQL慢日志查询开关
slow_query_log = 1

-- 2.设置慢日志的时间为2秒,SQL语句执行时间超过2秒,就会视为慢查询,记录慢查询日志
long_query_time = 2

-- 3.配置完毕之后,重新启动MySQL服务器进行测试,查看慢日志文件中记录的信息
systemctl restart mysqld

g-- 4. 随后我们可以在/var/lib/mysql/localhost-slow.log中
-- 查看慢日志文件中记录的信息
cat /var/lib/mysql/localhost-slow.lo

-
– 查看慢日志文件中记录的信息
cat /var/lib/mysql/localhost-slow.lo

  • 我们可以执行一条比较耗时的SQL语句(耗时超过指定的2s),然后看慢查询日志是否记录了相关信息。

在这里插入图片描述

3.执行计划
1
2
3
4
5
6
explain
SELECT id,user_id,serve_item_name
FROM orders_0
WHERE (orders_status = 0 AND user_id = 1716346406098296832 AND display = 1 and sort_by<1698924600022)
ORDER BY sort_by DESC
LIMIT 10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[
{
"id": 1, 每个查询步骤的唯一标识符
"select_type": "SIMPLE", 查询的类型,例如 SIMPLE(简单查询)或 PRIMARY(主查询,嵌套子查询的最外层查询)。
"table": "orders_0",查询涉及的表。
"partitions": null, 使用的分区(如果有分区表的话)
"type": "range",查询使用的连接类型,例如 ALL(全表扫描)或 index(索引扫描)。
"possible_keys": "query_index_0,query_index_1",可能用于此查询的键列表。
"key": "query_index_0",实际用于此查询的键。
"key_len": "26",实际用于此查询的键。
"ref": null,显示索引的哪一列被用于查询。
"rows": 1,MySQL 估计将需要读取的行数。
"filtered": 100,在表中的行数的百分比,表示查询的条件有多少行满足。
"Extra": "Using where; Using index" 其他的额外信息,例如使用了哪些索引、是否使用了文件排序等。
}
]

mysql执行耗时
http://example.com/2024/09/26/mysql/存储引擎索引sql优化/sql执行耗时/
作者
John Doe
发布于
2024年9月26日
许可协议