什么更快:会话数据的临时SQL表或Python dicts?

时间:2013-12-02 04:05:01

标签: python python-2.7 sqlite sqlalchemy

有一些编程背景,但在学习Python和制作Web应用程序的过程中,我是Stack Overflow上的长期潜伏者,但是请耐心等待。

我知道SQLite(或其他数据库,看起来像PostgreSQL很受欢迎)是在会话之间存储数据的方式。但是,在会话期间存储大量数据的最有效方法是什么?

我正在构建一个脚本,以确定最强大的员工群体,以处理公司中的各种项目。我收到了每个部门的一个SQLite数据库,其中包含员工数据,包括技能组合,成就,绩效和薪酬。

我的脚本当前在每个数据库上运行一个SQL查询,以响应用户的初始查询,提取所有可能相关的员工及其数据。它将所有数据存储在Python dicts列表中,以便最终用户可以混合匹配相关人员。

我还看到另外两个选项:我仍然可以运行全面的初始查询,但不是将它存储在Python dicts中,而是将它们全部转储到SQLite临时表中;我的猜测是,这会节省一些空间和计算,因为我不必存储每条记录的所有连接。或者我可以加载员工姓名和列/行引用,这将在第一次传递时节省大量连接,然后在用户请求其他数据时从原始数据库中即时提取数据,在Python中存储很少的数据数据结构。

什么是最有效的?或者,至少在会话期间处理大量数据的最常见/正确方法是什么?

提前致谢!

1 个答案:

答案 0 :(得分:1)

你不是在过度优化吗?您不需要最佳解决方案,您需要一个足够好的解决方案。

使用dicts实现最简单的一个;它有充足的机会。如果您测试然后发现它不合适,请尝试SQLite或Mongo(两者都有缺点),看看它是否更适合您。但我怀疑在你的情况下购买更多的RAM将是最具成本效益的解决方案。

(不是真正的答案免责声明。)