[英]Php Globals v. Database calls for lots of data
对于大型数组,是否需要在每次需要时将数据保存到全局变量或查询数据库更好? 在我的情况下,将它们保留在本地范围内并传递给函数不是一种选择。
我使用的是wordpress,在大多数页面中,我都会获得每个用户以及所有附加到他们的元数据。 通常,我经常在同一页面的多个位置使用这些变量。 不幸的是,wordpress不允许我在模板之间传递变量,因此每次使用全局变量或调用数据库时都会遇到麻烦。 最终,这将是数百个用户,每个用户都附有很多元数据。 我应该每次都调用数据库以使变量保持局部状态,还是应该将它们保存到全局变量中以保存数据库查询? 有哪些注意事项? 我应该担心性能,开销和/或其他问题吗?
非常感谢!
解决您问题的唯一真正方法是使用某种缓存系统( Memcache和Redis是您的最佳选择)。 幸运的是,有许多Wordpress插件使集成变得容易。 例如:
编辑
如果您只想缓存一些数据库调用,则可以忘记Wordpress插件并开始编写一些代码。 假设您只想缓存用于从数据库中检索用户列表的调用,并假设您正在使用Memcache完成此任务(Memcache存储键值对,并允许超快速访问给定键的值)。
就这样。 现在,您只需要确定要缓存的内容并将此过程应用于这些元素即可。
您不必执行呼叫,而是每页执行一次,您可能必须为每个页面执行一次调用。 因此,我建议您创建某种类以与数据库进行交互,您可以调用该类来获取所需的数据。 我还建议您在数据库上使用存储过程和函数,而不是直接查询,因为这将有助于安全性以及应用程序逻辑和数据功能的分离。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.