gpt4 book ai didi

python - 哪一种数据加载方法最适合性能?

转载 作者:可可西里 更新时间:2023-11-01 11:13:56 26 4
gpt4 key购买 nike

例如,我将对象 user 存储在数据库 (Redis) 中它有几个字段:

  • String nick
  • 字符串 密码
  • 字符串 电子邮件
  • 列出 帖子
  • 列出 评论
  • 设置 关注者
  • 等等...

在 Python 程序中,我有类 (User),此对象具有相同的字段。此类的实例映射到数据库中的对象。问题是如何从数据库中获取数据以获得最佳性能:

  1. 在创建实例时为每个字段加载值并使用它初始化字段。
  2. 每次请求字段值时加载字段值。
  3. 作为第二个,但在值加载之后用加载的值替换字段属性。

附注redis 在本地主机上运行

最佳答案

方法完全取决于需求。

如果只有一个客户端读取和修改属性,这是一个相当简单的问题。修改数据时,只需更改当前 Python 程序中的实例属性,同时保持数据库同步,同时保持程序响应。为此,您应该将阻塞调用外包给另一个线程或使用 greenlets。如果只有一个客户端,则绝对没有必要在每次值查找时从数据库中获取属性。

如果有多个客户端读取数据而只有一个客户端修改数据,你就得考虑你需要哪个级别的同步。如果您需要 100% 同步,则必须在每次值查找时从数据库中获取数据。

如果有多个客户端更改数据库中的数据,您最好研究一个坚如磐石的行业标准解决方案,而不是编写自己的数据库缓存/映射器。

您对 (2) 和 (3) 的区分没有任何意义。如果您在每次查找时都获取数据,则无需“存储”数据。您会发现,如果涉及多个客户,这些事情很快就会变得非常复杂,而且真的很难做好。

关于python - 哪一种数据加载方法最适合性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12394528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com