Php 时间线新评论计数
我需要解决下一个问题: 我需要最优化的解决方案来计算博客帖子中的新时间评论 我自己的解决办法是: 再创建一个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 时间线新评论计数,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
<?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会锁定单行