【问题标题】:Increment counter field in database (saving load database)数据库中的增量计数器字段(保存负载数据库)
【发布时间】:2011-10-17 01:02:04
【问题描述】:

场景:一个数据库保留了几个经常更新的计数器。

更新语句很简单:

UPDATE table SET count = count + 1

但是,更新非常频繁(不需要经常显示更新的值),因此可能适合找到一种方法来分块升级(以保存连接):

在短时间内(每隔一秒或几秒)而不是 +1、+1、+1、+1、+1、+1、+1、+1、+1、+1,而是 +80长时间阻塞(每 5 分钟一次)。

如何更新计数器值以保存频繁连接?

(注意:我在 MySQL 数据库中看到 UPDATE LOW_PRIORITY,我发现类似)

【问题讨论】:

  • 您没有指定 DBMS,但如果您的支持触发器,请在触发器中执行此操作,它将对您透明
  • 但是......这些增量数字临时保存在哪里?最好的方法是什么?

标签: php sql sql-update counter


【解决方案1】:

计数器是一个非常简单的东西。如果需要,您可以将号码保存在文本文件中。在服务器上保存到本地文件通常比在数据库上运行查询更容易,听起来您已经对减少数据库的负载感兴趣。如果您担心竞争条件,请使用文件块(例如flock);然后让脚本以您认为合适的频率将数据库与文本文件同步(可能使用cron job)。

【讨论】:

    【解决方案2】:

    自动回答:我找到了快速高效的临时存储系统(而不是文件):

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多