首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL没有在查询之间使用索引。我做错了什么?

MySQL没有在查询之间使用索引。我做错了什么?
EN

Stack Overflow用户
提问于 2012-10-10 04:13:29
回答 2查看 1.5K关注 0票数 1

我尝试过这个查询的不同变体,但是我无法让它使用时间戳索引。我做错了什么?

如有任何帮助,我们将不胜感激:)

代码语言:javascript
复制
MariaDB [alienvault]> explain extended SELECT * FROM alienvault_siem.acid_event WHERE (timestamp BETWEEN '2012-10-09 11:20:17' AND '2012-10-10 03:20:17');
+------+-------------+------------+------+---------------+------+---------+------+---------+----------+-------------+
| id   | select_type | table      | type | possible_keys | key  | key_len | ref  | rows    | filtered | Extra       |
+------+-------------+------------+------+---------------+------+---------+------+---------+----------+-------------+
|    1 | SIMPLE      | acid_event | ALL  | timestamp     | NULL | NULL    | NULL | 4481579 |    50.00 | Using where |
+------+-------------+------------+------+---------------+------+---------+------+---------+----------+-------------+
1 row in set, 1 warning (0.01 sec)

表结构:

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `acid_event` (
  (...)
  `timestamp` datetime NOT NULL,
  (...)
  PRIMARY KEY (`id`),
  (...)
  KEY `timestamp` (`timestamp`),
  (...)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

软件: Percona Server

软件版本: 5.5.27-28.1 - Percona Server (GPL),第28.1版

EN

回答 2

Stack Overflow用户

发布于 2012-10-17 18:43:26

可能是由以下原因引起的:- index没有足够的选择性,而mysql认为全面扫描速度会更快- mysql的索引统计数据很差。

您可以检查“从alienvault_siem.acid_event中显示索引”的输出;您还可以尝试强制使用索引(但如果FROM扫描速度更快,则可能是不好的):

代码语言:javascript
复制
SELECT * FROM alienvault_siem.acid_event FORCE INDEX (`timestamp`) WHERE (timestamp BETWEEN '2012-10-09 11:20:17' AND '2012-10-10 03:20:17');
票数 3
EN

Stack Overflow用户

发布于 2012-10-10 05:00:59

问题是,您将日期文本作为字符串提供。

如果您使用str_to_date()函数,如

代码语言:javascript
复制
WHERE timestamp 
  BETWEEN str_to_date('2012-10-09 11:20:17','%Y-%m-%d %H:%i:%s') 
      AND str_to_date('2012-10-10 03:20:17','%Y-%m-%d %H:%i:%s') 

然后MySQL将能够使用该索引。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12811822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档