php: session 与数据库

标签 php mysql performance session

我有一个类可以从数据库中检索其成员(大约 10 个成员)。

我的问题是:每次从数据库 (MySQL) 中获取它们,只在 session 的数组中保留一个 ID 还是直接将它们存储在 session 的数组中是否更有效?

而且性能方面的差异有这么大吗? (给定一个包含 100.000 行的数据库)

最佳答案

考虑到您无论如何都要在 session 中存储 ID, session 最有意义。执行 session_start() 会加载您的 session 信息,因此在此之后您是否加载了 1 个或 10 个项目在很大程度上是无关紧要的(除非它们真的很大,但无论如何这都会成为一个问题)。

所以坚持这个 session 。

如果您真的很在意速度,请使用 APC 或 memcache 等内存缓存。担心来自文件系统或数据库的 10 个项目的速度会让人分心。差异将是如此之小以至于无关紧要。

注意:以上假设了两件事:

  1. 查询性能良好(从 10 万行中检索 10 行应该可以在 0.1 秒内完成);和
  2. 您正在执行一个查询而不是 10 个。

关于php: session 与数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1140808/

相关文章:

php - 使用PHP的“注意: undefined variable ”,“注意: undefined index ”和“注意: undefined offset ”

mysql - 在顶部显示当前日期的值,然后是其他日期

java - 我应该关闭tcp连接吗?

java - 在 GridWorld 的 GUI 中扩展一个类而不更改使用它的其他类

php - Laravel DB 门面 BadMethodCallException

php - preg_replace单个变量中的多个Youtube链接

php - 为目录树动态创建下载链接

datetime - MySQL 中重叠日期时间范围的总和

如果email_address在第二个表中,MYSQL删除所有电子邮件

c - 快速替换数组中元素的方法 - C