【发布时间】:2015-04-07 08:45:51
【问题描述】:
创建表格
我有一个由两个表组成的数据库:
- ENTITE_CANDIDATE
- 变化
使用以下查询创建表:
CREATE TABLE IF NOT EXISTS ENTITE_CANDIDATE (ID INTEGER PRIMARY KEY NOT NULL, ID_KBP TEXT NOT NULL, wiki_title TEXT, type TEXT NOT NULL);"
CREATE TABLE IF NOT EXISTS VARIATIONS (ID INTEGER PRIMARY KEY NOT NULL, ID_ENTITE INTEGER, NAME TEXT, TYPE TEXT, LANGUAGE TEXT, FOREIGN KEY(ID_ENTITE) REFERENCES ENTITE_CANDIDATE(ID));"
- 表 ENTITE_CANDIDATE 由 818,742 条记录组成
- 表 VARIATIONS 由 154,716,653 条记录组成
索引表
我使用以下查询索引了以前的表:
`CREATE INDEX var_id ON VARIATIONS (ID, ID_ENTITE, NAME);`
`CREATE INDEX entity_id ON ENTITE_CANDIDATE (ID, wiki_title);`
检索信息
我想从表 VARIATIONS 中检索以下记录:
"SELECT ID, ID_ENTITE, NAME FROM VARIATIONS WHERE NAME=foo ;"
每个 select 查询大约需要 5.414931 秒。我知道该表包含大量记录。但是我可以让检索更快吗?我是否正确索引了表格?
【问题讨论】: