我有一个相当大的数据集,并希望将其存储在文件而不是RDBMS中。
数据集中的主表只有超过1M行,30列和大约600Mb的CSV格式。
我在考虑SQLite。 SQLite是否值得研究这种大小的数据集?
答案 0 :(得分:17)
SQLite会处理该文件就好了;确保在事务中导入记录,以便在导入所有内容之前不会花费大量时间创建索引。
答案 1 :(得分:9)
我最近调查了SQLite的类似应用程序。 SQLite文档声明SQLite数据库的大小可以是太字节,并且SQLite的主要限制是并发(许多用户同时)。虽然我们没有采用这个方向(我们有自己的二进制存储格式),但我非常有信心SQLite可以处理这种大小的文件。
答案 2 :(得分:6)
当您使用事务并且不经常提交时,sqlite很快。使用带参数的预处理语句也可以加快速度。使用参数化查询时,Sqlite不必重新分析每个sql语句。例如:How do I get around the "'" problem in sqlite and c#?
我在sqlite db中存储2 GB,它运行得很好。 sqlite在平面文件上方的一大优势是可以索引数据。
答案 3 :(得分:5)
您已经有了答案,但我想分享我目前的实验:我已将数十亿条记录,价值793 GiB的数据转储到单个SQLite数据库中,读取查询的速度仍然非常快(低于1米)。
创建时间花了22个多小时,每个列创建后索引大约需要4个小时。
答案 4 :(得分:3)
sqlite应该对你有用。即使在嵌入式设备中,我也运行了这个大小的数据集,并且sqlite性能非常合理。
如上所述,主要瓶颈是并发性。旨在设计您的系统,以便每个数据库文件最多只能打开一个数据库句柄。