我有一个大约1GB的CSV文件,包含大约5000万行数据,我想知道将它保存为CSV文件或将其存储为某种形式的数据库会更好。我不太了解MySQL为什么我应该使用它或其他数据库框架而不仅仅是将它保存为CSV文件。我基本上使用这个数据集进行广度优先搜索,所以一旦我得到初始的“种子”设置了5000万,我就把它作为我队列中的第一个值。
谢谢,
答案 0 :(得分:3)
我想说通过CSV使用数据库获得如此大的结构化数据有很多好处,所以我建议你学到足够的知识。但是,根据您的描述,您可能需要检查非服务器/轻量级数据库。比如SQLite,或者类似于JavaDB / Derby的东西......或者根据数据的结构,非关系型(Nosql)数据库 - 显然你需要一个具有某种类型的python支持的数据库。
答案 1 :(得分:2)
如果您想搜索某些图表(因为您提到广度优先搜索),那么graph database可能会有用。
答案 2 :(得分:1)
你是否只是一次性啜饮一切?如果是这样,那么CSV可能就是这样。这很简单,也很有效。
如果你需要进行查找,那么让你对数据进行索引的东西,比如MySQL,会更好。
答案 3 :(得分:1)
从您之前的问题来看,您似乎正在对Facebook好友数据进行社交网络搜索;所以我假设你的数据是一组'A is-friend-of B',你正在寻找两个人之间最短的联系?
如果你有足够的内存,我建议将你的csv文件解析为列表字典。见Can this breadth-first search be made faster?
如果您无法同时保存所有数据,那么像SQLite这样的本地存储数据库可能是您的下一个最佳选择。
还有一些python模块可能有所帮助:
答案 4 :(得分:0)
像MongoDB这样的一些键值存储
怎么样?