python pickle vs sql效率

标签 python sql pickle

我正在用 Python 开发一个需要存储(非常)大数据集的应用程序。 pickle 是存储数据并根据请求检索数据的最实用方法,还是我应该考虑改用 SQL?我的主要目标是速度和尽可能少的处理压力。

我担心的是 pickle 必须即时处理整个大文件,这可能会对性能产生不利影响。除了使用之外,我对 pickle 不是特别熟悉,所以任何关于它如何工作的解释都会很棒。

现在,我正在使用这段代码:

users = pickle.load( open( "users.py", "rb" ) )
username = raw_input("Please enter a username: ")
password = raw_input("Please enter a password: ")
var = username in users
if(var == 0):
    return 0
    exit()
else:
    if(users[username] != password):
        return 0
        exit()
    else:
        return 1
        exit()

想象一下users包含100万个条目,这个和SQL哪个效率更高?

任何帮助都会很棒,

谢谢

最佳答案

Pickle 通常适用于对象的存储,如果你想有效地存储“原始”数据,那么 pickle 可能不是可行的方法,但它非常依赖于特定情况——“加载”数据时间紧迫,您是否有开发时间来设置数据库、查询等。

如果您的数据是一百万对用户名和出生日期,那么 pickle 可能不是最好的方法,可以说将数据存储在纯文本文件中会更简单。

pickle 和 db/SQL 解决方案都具有可扩展的优势。请记住 pickle 不是“安全的”,因此您应该考虑文件的可信度,例如会不会在不同系统之间转移。

总的来说,如果你的数据集非常大,关系型 Db 可能比 pickle 更合适,但你可能还需要考虑其他存储引擎,例如Redis、MongoDb、内存缓存。不过,所有这些都非常依赖于具体情况,因此您可以提供更多有关数据预期使用方式的信息,这将很有用!

关于python pickle vs sql效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16497115/

相关文章:

SQL Server : the multi-part identifier could not be bound when using VIEW

python - 读取 pickle 文件时出现 AttributeError

python-3.x - 这是 pickle 实例方法的正确方法吗?如果是,为什么不在 Python 3 中?

python - 要索引的 id 的交叉引用列表

python - 用于在 jupyter 中进行内联绘图的 matplotlib 后端是什么

sql - 降低查询计划中表值函数 - XML Reader 的成本 - 如何?

sql - 向 View 添加索引时出错

面向绝对初学者的 Python,第 7 章挑战 2

python - 如何在数据科学体验项目中创建到 Bluemix 上的对象存储的连接?

python - 如何将键映射到多个值到数据框列?