【问题标题】:php cache or anything which can reduce database query on page refreshphp缓存或任何可以减少页面刷新时数据库查询的东西
【发布时间】:2015-04-12 06:48:42
【问题描述】:

大家好,我有一个网站,我有一个侧面板,在所有页面上显示相同的内容 我的意思是数据库获取的数据经常变化。 就像我的网站左侧有一个面板,它显示最近的生日,仅在 1 天后才会更改,但问题是每次刷新页面时,都需要一次又一次地从数据库中获取相同的数据这可以增加数据库负载和页面加载时间

我想知道执行查询后是否有任何东西可以显示侧边栏,之后将从会话/缓存中获取结果或解决方案是什么

我认为它可以通过像 memcache 这样的缓存来完成,但我不知道如何 我也尝试将它们存储到会话和 cookie 中,但有错误说不能将对象存储到会话中,而且我必须对通过查询获得的结果使用循环查询就像

  $birthday_query=mysqli_query($connection,"select name,email,id,date from members where dob 'some code here' "); 
   // this code fetches about 30-40 results and i am using the loop to display the results..

【问题讨论】:

    标签: php mysql caching


    【解决方案1】:

    是的,您可以使用 memcache 来存储信息。这是您最好的选择,因为它将保留在服务器内存中。

    您还可以使用一些非常简单的东西,比如一个临时文件来保存最近的生日信息——HTML 代码。每天更新一次此文件中的信息并从那里读取。对于每个用户,您可以读取一次信息(当他们第一次访问网站时),然后将其存储并从会话中读取。

    【讨论】:

    • 我是 memcache 的新手,您能告诉我如何从 memcahce 开始吗...我不是要您教我,只是要启动和连接等...
    • 网上有很多关于这个的教程。例如:code.tutsplus.com/tutorials/…
    【解决方案2】:

    对于仅 30-40 个结果,您不需要缓存它不会增加很大的价值,最好在用户浏览您的第一页时使用 Session 存储数据,然后始终从 @ 获取数据987654323@。在这里使用文件来缓存 html 也是一个不错的选择。

    您可以查看how to store object into session

    【讨论】:

    • 可能只有 30-40 个结果,但不建议在繁忙站点的每个页面加载时运行此查询(任何重复查询)。
    • 我从来没有说过要在每个页面上运行相同的查询。我的观点是Session 在这种情况下缓存是一个不错的选择。
    猜你喜欢
    • 2015-02-17
    • 1970-01-01
    • 2019-03-16
    • 2016-05-18
    • 2018-04-05
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多