我有一个大约 3000 万行乘 500 列的 SQLite 表。其中三列是:
CREATE TABLE core (
state TEXT,
year INTEGER,
randInt INTEGER,
);
我对这个表的主要用途是子集,SELECT
要么成对,要么与. 是一个随机整数,范围从 0 到 100。state
year
randInt
randInt
州年选择示例:
SELECT * WHERE state='MA' AND year=1999;
SELECT * WHERE (state='MA' AND year=1999) OR (state='NJ' AND year=1998);
randInt 选择示例:
SELECT * WHERE randInt < 10;
SELECT * WHERE randInt = 10;
这两种类型的选择构成了我将要执行的 95% 以上的数据库查询。有没有办法专门为他们优化表格?
我想我想明确地CREATE INDEX
为randInt
和一个复合索引state,year
,但我不知道有一个是否会干扰另一个,而且我不知道如何创建复合索引。
我是否应该关闭所有其他 497 列的索引,因为我很少会索引它们?