加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

什么时候适用于使用数据库,在Python中

发布时间:2020-12-12 16:33:08 所属栏目:MsSql教程 来源:网络整理
导读:我正在为游戏添加一些附加组件,它需要在播放器上存储信息: 用户名 ip-address 游戏中的位置 来自该IP或来自该用户名的备用IP地址的备用用户名的列表 之前我读过一篇文章说,除非我正在存储大量不能在ram中保存的信息,否则我不应该使用数据库.所以我尝试在pyth
我正在为游戏添加一些附加组件,它需要在播放器上存储信息:

>用户名
> ip-address
>游戏中的位置
>来自该IP或来自该用户名的备用IP地址的备用用户名的列表

之前我读过一篇文章说,除非我正在存储大量不能在ram中保存的信息,否则我不应该使用数据库.所以我尝试在python中使用shelve模块,但我不知道这是否是一个好主意.

你什么时候会认为使用数据库是一个好主意,如果更好地以另一种方式存储信息,还有一些其他方法可以存储除数据库和平面文件数据库之外的信息.

解决方法

最重要的是,除非您特别需要性能或高可靠性,否则可以做任何事情,使您的代码最简单/最简单.

如果您的数据结构非常(您知道SQL或愿意学习),那么使用像sqlite3这样的数据库可能是合适的. (您应该忽略关于数据库大小和RAM的注释:有时数据库适用于甚至非常小的数据集,因为数据的结构如何).

如果数据相对简单,并且不需要数据库(通常)具有的可靠性,然后将其存储在其中一个内置数据类型中,而程序运行则可能很好.

如果您希望存储在磁盘上的数据具有人性化的可读性(可编辑性,但需要付出努力),那么像JSON这样的格式(有内置的json模块)是很好的,因为基本的Python对象没有任何努力.如果数据不是这么简单,那么YAML本质上是一个扩展版本的JSON(PyYAML是非常好的).同样的,您可以使用CSV文件(csv模块),尽管这不及JSON或YAML,或只是一种自定义的文本格式(但是这是非常大的努力来获得错误处理等等) .

最后,如果您的数据包含更高级的对象(例如递归字典或复杂的自定义数据类型),那么使用内置的二进制序列化技术(pickle,shelve等)可能是适当的,但是YAML可以处理这些事情(包括递归数据结构).

一般要点:

>纯文本格式很好,因为它们允许调整值很容易调试/测试很容易>二进制格式是很好的,因为它们的意思是,值不能被调整没有一点额外的努力(这不是说,他们不能调整),而文件大小较小(可能不相关)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读