我正在使用 SQLite 将大约 9Gb 的大数据集加载到“:memory:”数据库中。现在,我有一个 python 脚本,可以从 .csv 文件中加载数据(逐行执行一些其他操作)。然后我需要在两张大桌子上做一些连接。如果数据库在内存中,索引我要加入的列会有所不同吗?如果是这样,在将数据加载到表之前创建带有索引的表,还是在连接之前构建索引更好?最后,如果我为列指定类型,它会在速度方面有所不同吗?
问问题
1025 次
1 回答
1
索引将有所帮助:搜索表的所有记录仍然比使用二进制搜索在索引中查找要慢。
如果在加载数据之前创建索引,则必须为每个插入的记录更新索引。
在 SQLite 中,除了类型 affinity之外,列类型无关紧要 。没有声明列类型将与拥有正确类型一样快;仅当您设法为列声明错误类型时,您才会获得类型转换的额外费用。
于 2012-09-29T14:16:30.213 回答