Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中高效缓存此表的mysql查询_Php_Mysql_Html_Css_Cakephp - Fatal编程技术网

如何在php中高效缓存此表的mysql查询

如何在php中高效缓存此表的mysql查询,php,mysql,html,css,cakephp,Php,Mysql,Html,Css,Cakephp,我有一个Posts表,其中包含标题,内容,评级,无评论,作者id。当用户对帖子投下否决票时,评分字段将递减,反之亦然此外,我正在缓存显示查询,该查询显示最近的文章,并且与表作者相关。问题是评级字段需要经常更新,即有大量的上升票和下降票。因此,每次用户上下帖子时,我都需要重建缓存。我认为这是一种浪费,因为整个缓存数据中只有一个字段被更新。所以我想知道有没有解决这个问题的办法。顺便说一句,我正在使用基于文件的缓存。好的。因此,您的解决方案是向执行以下操作的PHP打开ajax请求: 未经测试 whil

我有一个
Posts
表,其中包含
标题
内容
评级
无评论
作者id
。当用户对帖子投下否决票时,评分字段将递减,反之亦然

此外,我正在缓存显示查询,该查询显示最近的文章,并且与表
作者相关。问题是评级字段需要经常更新,即有大量的上升票和下降票。因此,每次用户上下帖子时,我都需要重建缓存。我认为这是一种浪费,因为整个缓存数据中只有一个字段被更新。所以我想知道有没有解决这个问题的办法。顺便说一句,我正在使用基于文件的缓存。

好的。因此,您的解决方案是向执行以下操作的PHP打开ajax请求:

未经测试

while (array_pop(mysql_fetch_array(mysql_query("SELECT count(*) FROM `posts` WHERE `ID` = '$latest_id_prediction'"))) == 0) { 
    sleep(10);
}
echo array_pop(mysql_fetch_array(mysql_query("SELECT * FROM `posts` WHERE `ID` = '$latest_id_prediction'");

这将每10秒检查一次是否有新帖子,如果有,它将回显帖子信息。您要做的是在没有超时的情况下对此页面发出ajax请求,并在收到回复时更新页面。收到回复后,打开一个新连接。

好的。因此,您的解决方案是向执行以下操作的PHP打开ajax请求:

未经测试

while (array_pop(mysql_fetch_array(mysql_query("SELECT count(*) FROM `posts` WHERE `ID` = '$latest_id_prediction'"))) == 0) { 
    sleep(10);
}
echo array_pop(mysql_fetch_array(mysql_query("SELECT * FROM `posts` WHERE `ID` = '$latest_id_prediction'");

这将每10秒检查一次是否有新帖子,如果有,它将回显帖子信息。您要做的是在没有超时的情况下对此页面发出ajax请求,并在收到回复时更新页面。收到回复后,打开一个新连接。

如果您规范化了数据结构,您将能够缓存静态部分,即“Post”,具有“Post属性”或您决定使用的任何动态部分

评论数量应通过计算“评论”表中的评论数量得出


一个可靠的数据结构将在很大程度上帮助您。

如果您规范化了数据结构,您将能够缓存静态部分,即“Post”,具有“Post属性”或您决定使用的任何动态部分

评论数量应通过计算“评论”表中的评论数量得出


坚实的数据结构将在很大程度上帮助您。

如果您规范化了数据结构,您将能够缓存静态部分,即“Post”,具有“Post属性”或您决定使用的任何动态部分。如果您规范化了数据结构,您将能够缓存静态部分,即“Post”,具有“Post Attributes”或您决定使用的任何东西都是动态的。那么,我需要将查询拆分为多个查询吗?但是php重建结构(即为每个帖子找到正确的评级)不是会困难得多吗,因此需要额外的处理。不。暂时忘记评分,抓取其他所有内容并构建页面。现在您可以抓取评分并通过从表中仅选择
评分
动态计算出来。哦,等等。我在头版显示了一个帖子列表,其中我需要评分和帖子。那么您需要做什么他?如果评级正在更新,您希望更新页面而不重新加载?在技术上是正确的,但我会缓存最近的帖子,即,而不是从数据库中获取最近的帖子(使用select命令,这相当耗时)对于每个请求,我都会从缓存中检索列表。我只会在提交新帖子时更新缓存。那么,我是否需要将查询拆分为多个查询?但php重建结构(即为每个帖子找到正确的评级)会不会困难得多,因此需要额外的处理。不。暂时忘记评分,抓取其他所有内容并构建页面。现在您可以抓取评分并通过从表中仅选择
评分
动态计算出来。哦,等等。我在头版显示了一个帖子列表,其中我需要评分和帖子。那么您需要做什么他?如果评级正在更新,您希望更新页面而不重新加载?在技术上是正确的,但我会缓存最近的帖子,即,而不是从数据库中获取最近的帖子(使用select命令,这相当耗时)对于每个请求,我都从缓存中检索列表。我只在提交新帖子时更新缓存。我没有完全理解它(似乎很多)。你能将它翻译到我的案例中吗?我没有完全理解它(似乎很多)。你能将它翻译到我的案例中吗?