我是一个临时的 Python 程序员,到目前为止只使用过 MYSQL 或 SQLITE 数据库。我是一家小公司的计算机人员,我已经开始了一个新项目,我认为是时候尝试新的数据库了。
销售部门每周都会进行 CSV 转储,我需要制作一个小型脚本应用程序,允许其他部门的人员混合信息,主要是链接记录。我已经解决了所有这些问题,我的问题是速度,我只使用纯文本文件来处理所有这些问题,不出所料,它非常慢。
本来想用mysql的,后来每个桌面都需要安装mysql,sqlite比较容易,但是很慢。我不需要完整的关系数据库,只需要在合适的时间处理大量数据的某种方式。
更新:我想我没有很详细地了解我的数据库使用情况,因此无法很好地解释我的问题。我正在将大约 900 Megas 或更多的数据从 csv 读取到 Python 字典中,然后使用它。我的问题是快速存储和读取数据。
非常感谢!
最佳答案
快速总结
我们知道:
丢失的信息
"get all users who work for departement x"
"get all sales from user x"
需要数据库
I am the computer person for everything in a small company and I have been started a new project where I think it is about time to try new databases.
您肯定需要一个数据库来解决您的问题。仅使用python字典自己做这件事很困难。特别是当您的问题集无法放入内存时。
MySQL
I thought about using mysql, but then I need installing mysql in every desktop, sqlite is easier, but it is very slow. I do not need a full relational database, just some way of play with big amounts of data in a decent time.
集中式(客户端-服务器架构)数据库正是您解决问题所需要的。让所有用户从您管理的 1 台 PC 访问数据库。 您可以使用 MySQL 来解决您的问题 .
东京暴君
您也可以使用 Tokyo Tyrant存储您的所有数据。 Tokyo Tyrant 速度非常快,而且不必存储在 RAM 中。它处理获取数据的效率更高(而不是使用 python 字典)。但是,如果您的问题完全适合 Memory,我认为您应该看看 Redis(如下)。
Redis:
例如,您可以使用 Redis(quick start in 5 minutes) (Redis 非常快)将所有销售额存储在内存中。 Redis 非常强大,可以非常快地执行此类查询。 Redis 唯一的问题是它必须完全适应 RAM ,但我相信他正在努力(每晚构建已经支持它)。就像我之前已经说过的那样,完全从内存中解决您的问题是大型网站如何及时解决问题。
文件存储
此 article尝试使用诸如 couchdb/riak/mongodb 之类的文档存储来评估 kv 存储。这些商店的搜索能力更好(比 KV 商店慢一点),但不擅长全文搜索。
全文搜索
如果您想进行全文搜索查询,您可能会喜欢:
关于python - 最佳数据挖掘数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2577967/