Php 时间线新评论计数

Php 时间线新评论计数,php,codeigniter,Php,Codeigniter,我需要解决下一个问题: 我需要最优化的解决方案来计算博客帖子中的新时间评论 我自己的解决办法是: 再创建一个tbl,其中save blogpost\u id、lastview\u num\u comment what updated with every review of post和count\u num\u comment what==blog\u post.num\u comments 例如: <?php function post($id){ if($id &&am

我需要解决下一个问题:

我需要最优化的解决方案来计算博客帖子中的新时间评论

我自己的解决办法是:

再创建一个tbl,其中save blogpost\u id、lastview\u num\u comment what updated with every review of post和count\u num\u comment what==blog\u post.num\u comments

例如:

<?php 
function post($id){
   if($id && $id!=0){
      $sql = "SELECT `num_comments` FROM `blog_post` WHERE `id`=".quote_smart($id);
      $res=mysql_query($sql);
      $rw=mysql_fetch_array($res);
      $sql = "UPDATE `new_comments` SET last_view_numcom=".$rw['num_comments'];
      if(mysql_query($sql)){
         return 1;
      }else $this->error("database connect failed");
   }else redirect("");
}
?>

但是随着每个人都添加评论,我需要使用更新查询什么不是最好的解决方案

如果您需要实时数字,我认为没有更好的解决方案。否则,您可以通过cron每x分钟更新一次

但是,您可以通过将此代码减少为一次mysql\u查询运行来改进此代码:


$sql=UPDATEnew\u commentsSET last\u view\u numcom=SELECTnum\u comments from blog\u postWHEREid=.quote\u smart$id

但如果我有超过1k的用户和超过5k的帖子,那么每添加一条评论就有大约5k条查询。有什么想法吗?运行这个更新查询需要多少钱?如果您想从comments表中选择COUNT*this amount,需要多少钱?我不明白为什么这么简单的更新需要优化。如果评论表中有大量流量,可以尝试使用innoDb。如果您使用myIsam,myIsam会锁定整个表,而innoDb会锁定单行