我有一个相当大的数据集,并希望将其存储在一个文件而不是RDBMS中.
数据集中的主表只有超过1M行,30列和大约600Mb的CSV格式.
我在考虑SQLite.SQLite值得调查这个大小的数据集吗?
SQLite会处理该文件就好了; 确保在事务中导入记录,以便在导入所有内容之前不会花费大量时间创建索引.
我最近调查了SQLite的类似应用程序.SQLite文档声明SQLite数据库的大小可以是太字节,并且SQLite的主要限制是并发(许多用户同时).虽然我们没有朝这个方向发展(我们有自己的二进制存储格式),但我非常有信心SQLite可以处理这种大小的文件.
当您使用事务并且不经常提交时,sqlite很快.使用带参数的预处理语句也可以加快速度.使用参数化查询时,Sqlite不必重新分析每个sql语句.一个例子:我如何解决sqlite和c#中的"'"问题?
我在一个sqlite数据库中存储2千兆字节,它运行得很好.sqlite在平面文件上方的一大优势是可以索引数据.
您已经有了答案,但我想分享我当前的实验:我已经将价值793 GiB的数十亿条记录转储到单个SQLite数据库中,并且读取查询的速度仍然出乎意料地快(不到1m)。
创建时间只花了22个小时多一点,索引创建后每列花了大约4个小时。