Python 5000万+;数据行-CSV或MySQL
我有一个大约1GB的CSV文件,其中包含大约5000万行数据,我想知道是将其保存为CSV文件还是将其存储为某种形式的数据库更好。我对MySQL了解不多,也不知道为什么我应该使用它或其他数据库框架,而不是将它作为CSV文件。我基本上是用这个数据集进行广度优先的搜索,所以一旦我得到了初始的“种子”设置5000万,我就用它作为队列中的第一个值Python 5000万+;数据行-CSV或MySQL,python,mysql,database,optimization,csv,Python,Mysql,Database,Optimization,Csv,我有一个大约1GB的CSV文件,其中包含大约5000万行数据,我想知道是将其保存为CSV文件还是将其存储为某种形式的数据库更好。我对MySQL了解不多,也不知道为什么我应该使用它或其他数据库框架,而不是将它作为CSV文件。我基本上是用这个数据集进行广度优先的搜索,所以一旦我得到了初始的“种子”设置5000万,我就用它作为队列中的第一个值 谢谢,你是想一下子把所有的东西都吞进去吗?如果是这样的话,那么CSV可能是一条出路。它简单有效 如果您需要进行查找,那么可以对数据进行索引的东西(如MySQL)
谢谢,你是想一下子把所有的东西都吞进去吗?如果是这样的话,那么CSV可能是一条出路。它简单有效
如果您需要进行查找,那么可以对数据进行索引的东西(如MySQL)会更好。我想说,在CSV上使用数据库来查找如此大的结构化数据有很多好处,因此我建议您学习足够的知识来这样做。但是,根据您的描述,您可能希望签出非服务器/轻型数据库。比如SQLite,或者类似于JavaDB/Derby的东西。。。或者根据您的数据结构,使用非关系型(Nosql)数据库——显然,您需要一个支持某种类型python的数据库。如果您想搜索某个图形(因为您提到了广度优先搜索),那么MongoDB之类的键值存储怎么样然后a可能会被证明是有用的。从你之前的问题来看,它看起来像是你在针对facebook好友数据进行社交网络搜索;所以我假设你的数据是一组“a是B的朋友”语句,你在寻找两个人之间的最短连接 如果您有足够的内存,我建议您将csv文件解析为列表字典。看 如果不能同时保存所有数据,那么像SQLite这样的本地存储数据库可能是下一个最佳选择 还有一些python模块可能会有所帮助:
- 图形工具
- python图
- networkx
- IGRAPHE