gpt4 book ai didi

mysql - 我应该索引一个已经是多字段索引一部分的字段吗?

转载 作者:行者123 更新时间:2023-11-29 01:33:51 25 4
gpt4 key购买 nike

例如,我有一个这样的表,前 3 个字段有一个主键:

itemid | type | value | other_field [etc]

如果在我的网页上我几乎总是仅通过 type 字段进行选择,那么在 type 上有一个单独的索引是值得的(即性能是否会提高),或者主键索引是否覆盖了该字段?

最佳答案

索引/键中字段的顺序很重要。

如果您的主键位于 (type, itemid, value) 或 (type, value, itemid) 上,那么额外的索引可能没什么区别。多列索引也可以用于该索引的任何完整前缀。在这种情况下创建新索引的一个优点是它稍微窄一些,因此每页上会有更多行,但这种差异可能很小。此外,您还应该考虑查询的优势与修改数据的额外成本。

如果您的主键是其他任何东西,例如 (itemid, type, value) 那么在 (type) 上的额外索引可能会有所帮助,因为当 type 不是第一个时,主键不能用作 type 的索引列表。

关于过早优化的通常评论也适用于此。确定什么是最快的最好方法是自己在实际数据上进行测试。在某些情况下,即使您认为应该使用索引也不会使用,或者在其他情况下使用您认为应该使用的索引以外的索引。如果您想提高应用程序的性能,您应该收集(如果不能这样做,则随机生成)一些实际数量的数据,并使用不同的索引策略衡量您对该数据的查询的实际性能。

关于mysql - 我应该索引一个已经是多字段索引一部分的字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3176129/

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