增加值,另一种不使用 MySQL 的方法

增加值,另一种不使用 MySQL 的方法

我需要计算通过 Web 访问的 .php 脚本的印象数。现在我在 1 行 MySQL 表中执行此操作并仅增加值。这通常可以正常工作,但是当服务器流量激增(每秒数百个请求)时,一切都会延迟,增量 SQL 语句开始出现在 MySQL 的慢查询日志中。
我尝试通过 APC 进行计数,但它“丢失”了值,也就是说,当我运行一个简单的 ab 测试命令时,例如

ab -n 100 -c 10 http://example.com/script.php

MySQL 上只统计了 100 个新展示,而只有约 50 个新展示被统计。
我还尝试通过以下方式统计展示:内存缓存,它运行得更好(也就是说,它能够跟上更多的同时连接)但是在 50 或 100 个同时连接之后它也无法计算所有内容。

我想知道是否有人知道解决这个问题的好方法?

答案1

最后我选择使用 MEMORY 表而不是通常的 INNODB 表。虽然这个解决方案并不完美,但它比仅仅使用 INNODB 要好得多。我还将此解决方案应用于许多其他数据完整性并不重要的表,结果令人满意。

相关内容