2

我有一个包含 3 列的 sqlite 数据库:

id, word, bitmask

我从单词中的元音中制作了一个位掩码,因此我可以快速找到包含某个元音的每个单词:

SELECT word FROM words WHERE bitmask & 7 = 0

我有两个问题。

  1. 我应该添加索引吗?如果是这种情况,到哪一列以及如何编写查询

我尝试了下面的代码,但没有看到任何性能改进。

CREATE INDEX bitmask_index ON words (bitmask);
  1. “位掩码”列包含 1-256 之间的值。按值对“位掩码”列进行排序会是一件好事吗?在这种情况下,我该如何为此编写查询?
4

1 回答 1

4
  1. 索引不太可能有帮助,因为您在搜索之前将函数应用于值。通常,这会消除索引的影响。

  2. 对位掩码进行排序很少有意义,因为位图中的位位置不对应于跨行排序的内容(它们的排序与同一行内的某些内容相关联,例如某个单词中的元音)。

于 2013-03-16T20:27:15.123 回答