UPDATE `long`.`article` SET `view_count`=`view_count`+N WHERE `article_id`=N很占资源,它是计算每篇文章的点击量的。请问怎么改才好?

解决方案 »

  1.   

    article_id字段有索引的话,这句SQL不会占什么资源吧。不知道你说的很占资源是什么意思。
    另外一种方法是页面加载后使用ajax方法修改点击量。
      

  2.   

    文章访问量这种数据并不是特别重要的数据,可以用一个后台运行的程序每隔一段时间来更新一遍,浏览次数最好从apache日志中统计出来,网友浏览的前台页面只负责读取就可以了,前端触发来更新数据库还是不太稳定
      

  3.   

    其实访问量不大的话,那句SQL没有任何问题,不过访问量大了,就恼火了,所以推荐用上面这种,可以写到MEMECACHE中,定时或是访问量达到一定条件更新一次
      

  4.   

    UPDATE LOW_PRIORITY `long`.`article` SET `view_count`=`view_count`+1 WHERE `article_id`=N使用关键词 LOW_PRIORITY,UPDATE 的执行将被延迟,直到没有其它的客户端正在读取表。 
      

  5.   

    如果你担心mysql的问题,那么你可以用程序写一个临时的txt文件用来记录点击量啊,如下:
    文章id   点击量
    ------------
    1    10
    2    4
    3    19
    4    39
    用户每次点击之后你就用程序先改写这个txt内的点击量数值,当非访问高峰期的时候你再读取该txt,把每篇文章的点击量写入数据库,最后清空该文件即可.