gpt4 book ai didi

sql - 表扫描与添加索引——哪个更快?

转载 作者:太空狗 更新时间:2023-10-30 01:46:17 24 4
gpt4 key购买 nike

我有一个包含数百万行的表。我需要找到具有特定列值的所有行。该列不在索引中,因此会产生表扫描结果。

但是添加一个列在头部(主键后面)的索引,进行查询,然后删除索引会更快吗?

我无法永久添加索引,因为用户正在指定他们要查找的列。

最佳答案

需要思考的两个问题:

  1. 可以为查询指定多少列?
  2. 数据是否经常变化?很多吗?

如果您有少量个候选列,并且数据没有很多变化,那么您可能需要考虑在任何或甚至所有候选列。

亵渎!”,我听到了。大多数消息来源告诉您“永远不要”为表的每一列编制索引,但该建议是基于表被频繁修改的一般假设。

您将付出额外存储空间的代价,并在数据更改时影响性能。

多小是,多少是很多,权衡是否值得?没有办法告诉修道院,因为“太慢”通常是一种主观衡量。

您将不得不尝试一下,测量索引的大小,然后测量它们在搜索中的效果。您必须在成本与提高客户满意度之间取得平衡。

[已添加]哦,还有一件事:临时索引不仅在物理上比表扫描慢,而且它们会破坏您的并发性。重新索引表通常(总是?)需要全表锁,因此实际上一次只能执行一个用户搜索。

祝你好运。

关于sql - 表扫描与添加索引——哪个更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30094/

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