【问题标题】:How django SESSION_SAVE_EVERY_REQUEST = True affects the performance?django SESSION_SAVE_EVERY_REQUEST = True 如何影响性能?
【发布时间】:2015-05-29 17:41:49
【问题描述】:

我想在一段时间(比如 1 小时)不活动后注销用户。为此,我可以设置(在 django settings.py 中使用 SessionMiddleware):

  • SESSION_COOKIE_AGE = 3600
  • SESSION_SAVE_EVERY_REQUEST = 真

但是,我担心性能下降。因此,我的问题是:“django SESSION_SAVE_EVERY_REQUEST = True 如何影响性能?”。

【问题讨论】:

  • 你测量过这个吗?我怀疑它是微不足道的,除非您同时拥有超过 3K 的用户,否则将会话引擎从 db 切换到缓存是有意义的。

标签: django


【解决方案1】:

cf Django 文档:“要更改此默认行为,请将 SESSION_SAVE_EVERY_REQUEST 设置设置为 True。设置为 True 时,Django 将在每个请求时将会话保存到数据库中。”

如果您使用关系数据库作为会话后端,这将为每个用户的每个请求在会话表上启动 UPDATE 或 INSERT。 大多数数据库主要针对读取操作进行了优化,因此,拥有如此多的写入操作将很快降低您的服务器性能并限制用户并发

【讨论】:

  • 我知道它需要数据库操作(因为我阅读了您引用的部分文档)。我也怀疑它可能会导致性能问题,但我想知道这有多重要。
猜你喜欢
  • 1970-01-01
  • 2013-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-16
  • 2012-01-11
相关资源
最近更新 更多