我有一个从数据库中检索其成员(或多或少10个成员)的类。
我的问题是:每次从db (MySQL)中获取它们,只在会话的数组中保留一个ID,还是直接将它们存储在会话的数组中,效率更高?
性能方面的差异有这么大吗?(假设数据库有100.000行)
发布于 2009-07-17 01:19:44
考虑到您无论如何都会在会话中存储一个ID,因此会话最有意义。执行session_start()将加载会话信息,因此在此之后是否加载了1个或10个项在很大程度上是无关紧要的(除非它们真的很大,但这在任何情况下都是一个问题)。
因此,请继续进行会话。
如果您非常关心速度,请使用内存中的缓存,如APC或memcache。担心来自文件系统或数据库的10个项目的速度会让人分心。差异将是如此之小,以至于无关紧要。
注意:以上假设有两件事:
发布于 2009-07-16 23:27:48
这取决于你所说的“高效”是什么意思。一个人的时间效率,一个人的磁盘空间效率。而且很难将这两者相互比较,除非您的需求处于这两个极端的两端。您可能只需抛硬币,测量随时间推移的性能,并根据观察到的任何问题进行调整。
过早优化是万恶之源。
发布于 2016-10-28 04:18:11
如果正确设置了索引,那么表中的行是100,000行还是10,000,000行都是无关紧要的。
尽管如此,PHP默认的基于文件的会话绝对比从数据库中检索要快,但只有在站点使用率非常高时,例如每秒数百或数千次查询,您才会注意到不同之处。
https://stackoverflow.com/questions/1140808
复制相似问题