1
我需要填写一个数据库,数以百万计的记录,我对于目前的常规看起来像:SQLite的:防止碎片
For I = 1 to 10000000
INSERT INTO TABLE1 ...
INSERT INTO TABLE2 ...
INSERT INTO TABLE3 ...
Next
我注意到记录也出现在此顺序(交替)数据库文件在磁盘上。当我这样做时,性能是否会有所提高:
For I = 1 to 10000000
INSERT INTO TABLE1 ...
Next
For I = 1 to 10000000
INSERT INTO TABLE2 ...
Next
For I = 1 to 10000000
INSERT INTO TABLE3 ...
Next
对于查询性能,数据在磁盘上的结构如何?
为什么不直接导入一个csv(或tsv等)文件到表中? – 2011-10-13 17:12:41
@JackManey因为源数据不是这种格式。将它转换为CSV很容易,但我怎么才能导入它,而不必先写入磁盘(瓶颈)? – Muis
如果您将记录插入到SQLite数据库中,那么您**将它们写入磁盘。为什么不通过将记录写入磁盘然后导入一个批次(或者,如果需要,将一些记录写入文件,将其导入并以较小批次重复)来让自己更容易? – 2011-10-13 17:46:03