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

我的问题是:每次从db(MySQL)提取它们,在 session 的数组中仅保留一个ID或直接将它们存储在 session 的数组中,效率更高吗?

性能方面的差异是否如此之大? (给定一个具有100.000行的数据库)

最佳答案

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

因此,请坚持 session 。

如果您真正关心速度,请使用内存缓存,例如APC或内存缓存。担心文件系统或数据库中10个项目的速度令人分心。差异将是如此之小以至于无关紧要。

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

  • 查询是高性能的(从100k中检索10行应在0.1秒内完成);和
  • 您正在执行一个查询,而不是10。
  • 关于PHP: session 与数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1140808/

    10-13 08:18
    查看更多