(A) 缓存在 $_SESSION 数组中的每个页面加载时使用的数据是否“更好”(更高效、更快、更安全等)(但仍在查询表以获取重新加载数据的标志),或(B)每次都从数据库中加载它?
我正在使用缓存方法(A),但我担心有数百个用户,内存可能会成为问题?这只是简单的数据,例如名字、姓氏、生日等。
无论使用哪种方法,都会有一个查询正在运行。想法?
(A) 缓存在 $_SESSION 数组中的每个页面加载时使用的数据是否“更好”(更高效、更快、更安全等)(但仍在查询表以获取重新加载数据的标志),或(B)每次都从数据库中加载它?
我正在使用缓存方法(A),但我担心有数百个用户,内存可能会成为问题?这只是简单的数据,例如名字、姓氏、生日等。
无论使用哪种方法,都会有一个查询正在运行。想法?
如果您的数据在每个页面上都使用,并且对所有用户都相同,我不会将其缓存在 $_SESSION 中(这意味着为每个用户拥有该数据的不同副本),而是使用另一种机制,例如:
如果每个用户的数据都不相同(在您的情况下似乎就是这种情况,因为您正在缓存姓名、生日等):
作为旁注:如果您一遍又一遍地执行相同的查询,您的数据库服务器应该自己缓存它(对于 MySQL,它会进入“查询缓存”);所以,我想它不会像你想象的那么糟糕——即使没有那么优化^^
这取决于您的会话处理程序是什么。您的会话处理程序可能是 MySQL,因此问题不是哪个更好,而是如何优化您的会话处理。
默认的 PHP 会话处理程序是文件,但可以很容易地更改为 mysql。
如果您谈论的是非用户特定数据,那么只需将其保存到数据库即可。如果以后遇到问题,请担心优化。使用更好的设计模式通常比事先考虑优化更有益。设计您的代码,以便您可以轻松地使用不同的处理程序进行存储,并且以后不会出现优化问题。
如果它是特定于用户的,请使用会话,但如有必要,请使用适当的会话处理程序。