我正在使用SQLite将一个大约9 9Gb的大型数据集加载到":memory:“数据库中。现在,我有一个从.csv文件加载数据的python脚本(逐行执行一些其他操作)。然后,我需要在两个大表上做一些连接。如果数据库在内存中,那么索引我要连接的列会有什么不同吗?如果是这样的话,在将数据加载到表中之前创建带有索引的表还是在连接之前构建索引更好?最后,如果我为列指定类型,在速度方面是否会有所不同?
发布于 2012-09-29 22:16:30
索引将有所帮助:搜索表中的所有记录仍然比使用二进制搜索在索引中查找要慢。
如果在加载数据之前创建索引,则必须为每个插入的记录更新索引。
在SQLite中,除了type affinity之外,列类型并不重要。不声明列类型将与拥有正确的类型一样快;只有当您设法为列声明错误的类型时,您才会获得类型转换的额外开销。
https://stackoverflow.com/questions/12653282
复制相似问题