sqlite3:加速数据库创建的选项

时间:2017-12-19 22:20:56

标签: sqlite

我需要在sqlite3中创建一个表。该表的架构如下:

CREATE TABLE IF NOT EXISTS xinst ( id INTEGER NOT NULL, lay_path TEXT NOT NULL COLLATE NOCASE, sch_path TEXT NOT NULL COLLATE NOCASE, cell_id INTEGER NOT NULL );
CREATE INDEX IF NOT EXISTS cell_id on xinst (cell_id);
CREATE INDEX IF NOT EXISTS cell_id_and_lay_path on xinst (cell_id,lay_path);
CREATE INDEX IF NOT EXISTS cell_id_and_sch_path on xinst (cell_id,sch_path);

我的记录文件有88M条目(约15GB)。我使用的是sqlite3 v3.6.13。它已经很老了,但我没有把它更新到更新的那个。

我按如下方式填充数据库:

sqlite3 foo.xinst
.read schema
.separator ','
.import data.txt xinst

我计时了这个操作。在/ tmp完成运行大约需要45米。阅读关于这个主题的一些先前的问题,我尝试了两种方法:第一种,数据插入+索引一起发生。在第二种方法中,插入数据。在执行索引之后。在这两种情况下,运行时间都在45米左右(所以没有真正的区别)。我没有尝试其他选项,因为我不确定要尝试哪些选项。

您能否建议哪些选项值得探索以减少此运行时间?

我有另一个DB,它有大约290M的记录,所以我想让数据库创建运行时间缩短。

0 个答案:

没有答案