Pickle to file而不是使用数据库

时间:2012-12-25 08:44:02

标签: python mysql pickle

我正在python中编写一个基本的会员Web应用程序。

完全放弃数据库并简单地将python字典挑选到文件(http://docs.python.org/2/library/pickle.html)总是不好的做法吗?该计划永远不应该处理超过ca. 500个成员,并且只会保留关于每个成员的几个字段,所以我不认为缩放是一个问题。因为这个应用程序可能也需要在本地运行,所以如果事情保持尽可能简单,就可以更容易地在各种机器上运行。

所以选项是设置一个mysql数据库,或简单地挑选一个文件。我更喜欢第二,但想知道这是不是很糟糕。

1 个答案:

答案 0 :(得分:11)

不,如果您可以将所有数据保存在内存中,则不需要数据库,只需将所有数据进行酸洗即可。

酸洗的显着缺点是它不安全,有人可以用其他东西替换你的数据,包括可执行代码,而且它只是Python。使用数据库,您通常还会同时更新数据并写入磁盘,而您必须记住将数据腌制并将其保存到磁盘。由于这需要时间,因为当您一次写入所有数据时,通常只在您退出时才会执行,因此崩溃意味着您将丢失所有更改。

虽然有一个中间地带:sqlite。它是Python中包含的一个轻巧,简单的SQL数据库(自Python 2.5起),因此您无需安装任何额外的软件即可使用它。这通常是一种快速解决方案。由于SQLAlcehmey具有SQLite支持,因此它也意味着您甚至可以将SQLAlchemy与SQLite一起用作默认数据库,从而为更严肃的数据库提供“升级路径”。