avatar

目录
慢查询与索引的故事

引入问题: 为什么创建了索引,依旧还是慢查询?

来来来,先创建个最简单的表

CREATE TABLE test (
id int(11) NOT NULL,
a int(11) DEFAULT NULL,
b int(11) DEFAULT NULL,
PRIMARY KEY (id),
KEY a (a)
) ENGINE=InnoDB;

创建一个表 test,表有 3 个字段,分别是 id、a、b,id 是主键索引,在表上还创建了一个普通索引a。MySQL判断一个查询语句是不是慢查询,用的是语句的执行时间。把语句执行时间,与 long_query_time 这个系统参数做比较。
如果语句的执行时间比 long_query_time 这个参数大,就会把语句记录到慢查询日志中。long_query_time 这个参数默认值是 10 秒。

avatar

简单写几个select 语句,explain 一下,看一下 KEY 字段是不是 NULL,判断有没有使用索引。

avatar

是否使用了索引,只是表示了一个 sql 语句的执行过程,而是否记录了慢查询,由他的执行时间决定,而执行时间,可能受各种外部因素的影响。所以说是否使用了索引,与是否是慢查询间,并没有必然的联系。

文章作者: Viola Tangxl
文章链接: https://violatangxl.github.io/2020/02/14/mysql-long_query_time/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 椰子是只猫
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论