首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果列已经是其他索引的一部分,那么第二个索引是否有好处?

问如果列已经是其他索引的一部分,那么第二个索引是否有好处?
EN

Stack Overflow用户
提问于 2021-03-30 05:51:32
回答 1查看 18关注 0票数 0

我有一个MysQL 5.7表,有大约500米的记录,上面有一个唯一的索引(column1,column2,column3,date)。

在某些情况下,我只查询某一天的记录。例如日期= curdate() -间隔2天。这可能需要1分钟。

如果日期上有一个单独的指数,会有什么好处吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-30 05:56:31

这里需要注意的一点是,对于只涉及date列的查询,MySQL将无法使用当前的4列索引。造成这种情况的原因是B树在访问date列之前会在其他3列上拆分。因此,如果MySQL要完成索引扫描,则该索引只能满足日期查询。通常,在这种情况下,MySQL只想做一个完整的表扫描,而不去理会索引。

因此,如果只希望日期筛选器查询使用索引,则必须添加新索引:

代码语言:javascript
复制
CREATE INDEX idx2 ON yourTable (date);

关于指数“膨胀”,即有太多的指数,你并没有真正接近,只有两个指数定义。如果您确实发现您已经定义了5-7个索引,那么您可能能够组合或合并它们。

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

https://stackoverflow.com/questions/66865435

复制
相关文章

相似问题

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