gpt4 book ai didi

php - 在您选择的列上添加索引是否可以加快查询速度?

转载 作者:可可西里 更新时间:2023-11-01 07:29:44 24 4
gpt4 key购买 nike

我有一个相当常见的设置,我有一个标签和记录对表。查询它很慢,因此向我正在查询的标签的列添加索引有助于加快速度。

tag  | site123  | 456789  | 101

我的问题是在这两列上添加一个索引作为一个索引是否有益。永远不会被站点选中,那么这样做有什么好处吗?我也不能保证每个配对在不做一些更改的情况下都是独一无二的,但如果我这样做会有助于提高性能吗?

典型的查询可能如下所示:

SELECT site, tag FROM sitetags WHERE tag ='123' OR tag = '789'

最佳答案

如果您总是按tag 搜索,那么您只需要索引tag 列。

在不使用时将列添加到索引中,在插入或更新记录时会引入不必要的开销,并且还会消耗更多存储空间。

但是复合索引(tagsite)可能会提供额外的优化,因为 MySQL 只需要读取索引来满足您的查询(EXPLAIN 通常将此优化标记为 using index)。

如果您的操作主要是读取而不是写入,那么使用复合索引可能不是一个坏主意。

如果 tag 列具有高基数会更好,这意味着它们的值很有可能在每一行之间不同。

但我建议您先查阅 EXPLAIN 输出。

关于php - 在您选择的列上添加索引是否可以加快查询速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46139583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com