我有一个类可以从数据库中检索其成员(大约 10 个成员)。
我的问题是:每次从数据库 (MySQL) 中获取它们,只在 session 的数组中保留一个 ID 还是直接将它们存储在 session 的数组中是否更有效?
而且性能方面的差异有这么大吗? (给定一个包含 100.000 行的数据库)
最佳答案
考虑到您无论如何都要在 session 中存储 ID, session 最有意义。执行 session_start() 会加载您的 session 信息,因此在此之后您是否加载了 1 个或 10 个项目在很大程度上是无关紧要的(除非它们真的很大,但无论如何这都会成为一个问题)。
所以坚持这个 session 。
如果您真的很在意速度,请使用 APC 或 memcache 等内存缓存。担心来自文件系统或数据库的 10 个项目的速度会让人分心。差异将是如此之小以至于无关紧要。
注意:以上假设了两件事:
- 查询性能良好(从 10 万行中检索 10 行应该可以在 0.1 秒内完成);和
- 您正在执行一个查询而不是 10 个。
关于php: session 与数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1140808/