gpt4 book ai didi

sql - 此表和查询的最佳索引?

转载 作者:行者123 更新时间:2023-12-03 17:38:59 25 4
gpt4 key购买 nike

我有一个必须尽快运行的 sqlite 查询。查询相当简单,但我不知道为表编制索引以获得最佳性能的最佳方法。

该表称为“词典”。定义是:

_id integer primary key
word text
frequency integer
lset integer
rset integer

查询是:

SELECT word,frequency FROM lexicon WHERE lset>? AND rset<? ORDER BY frequency DESC LIMIT ?

我已经为所有单独的列编制了索引,但我怀疑复合索引可能更好,但是什么组合呢? lset和rset的索引应该升序还是降序?

编辑:lset 和 rset 是表示树结构的嵌套集合值。因此,lset 和 rset 的所有值都是相互唯一的,并且是完美分布的。此外,在任何给定的行中,lset < rset。

提前致谢...

最佳答案

这将取决于您的数据统计。

您可以尝试为 lset 的每个组合创建索引, rsetfrequency找到最佳情况,但您必须然后在您的表中有真实数据。
- ( lset , rset , frequency )
- ( rset , lset , frequency )
- ( lset , frequency , rset )
- ( rset , frequency , lset )
- ( frequency , lset , rset )
- ( frequency , rset , lset )

拥有frequency的优势首先是它已经为你的 ORDER BY 准备好了和 LIMIT条款。

但是,如果您词典中的每个词碰巧都有不同的频率,那么索引中的第二个和第三个字段将变得毫无值(value)。 (数据统计为何重要的示例。)

哪个字段将限制您最快的记录也很重要。如果lset < x过滤器将集合缩减为 0.01%原始大小,将该过滤器放在索引的第一位。

但很有可能,过滤 lset < X and rset > y根本不可能很好地编制索引。

关于sql - 此表和查询的最佳索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10705645/

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