mysql不使用索引,但处理程序\u read \u密钥增加

xv8emn3q  于 2021-06-21  发布在  Mysql
关注(0)|答案(0)|浏览(213)

我有一张table

CREATE TABLE test (
    id    INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
  , data  VARCHAR(32)
  , ts    TIMESTAMP
  , INDEX (data)
);

一些测试数据。

INSERT INTO test VALUES
  (NULL, 'abc', '2018-01-18 00:00:01'), (NULL, 'abc', '2018-01-18 00:00:02'),
  (NULL, 'abd', '2018-01-18 00:00:03'), (NULL, 'acd', '2018-01-18 00:00:04'),
  (NULL, 'def', '2018-01-18 00:00:05'), (NULL, 'pqr', '2018-01-18 00:00:06'),
  (NULL, 'stu', '2018-01-18 00:00:07'), (NULL, 'vwx', '2018-01-18 00:00:08'),
  (NULL, 'yza', '2018-01-18 00:00:09'), (NULL, 'def', '2018-01-18 00:00:10');

根据MySQL5.7参考手册
处理程序读取密钥
基于键读取行的请求数。如果该值很高,则表明表已为查询正确编制索引。
价值 Handler_read_key 仅当读取基于键的行时才会增加。但是,当我运行sql时

FLUSH STATUS ;
SELECT * FROM test WHERE ts = '2018-01-18 00:00:01';
SHOW STATUS LIKE 'Handler_read%';

列上没有索引 ts ,但两者都有 Handler_read_first 以及 Handler_read_key 增加了。与上述文件不一致。
那么,为什么?
谢谢你的回复。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题