如何解决跟踪表行而不是“计数”行的查询的替代方法
|| 我需要跟踪查询表中每一行的次数。我需要在许多桌子上这样做。 一种想法是\“ search_count \”列id | other data ... | search_count
1 | ... | 12
2 | ... | 90
有没有比“搜索计数”列更有效的方法?我知道这是可行的,但是它给我带来了不好的“代码气味”,因为我将不得不在每个查询(或触发器?)之后进行一次更新。我们将尽可能使用Piwik或Google Analytics(分析),但它们并不完全准确,因为我们不仅拥有连接数据库的Web服务器。
该数据库是MySQL 5.x
谢谢
解决方法
即时在数据库中执行此操作会生成太多死行...
使用您喜欢的语言中的
memcache->increment
进行跟踪。这是原子的。并使用cron每天或每小时存储结果。
伪代码计数:
$ns = $memcache->get(\'count_ns\');
$memcache->increment(\"count-$ns-$table-$id\");
在cron上:
$ns = $memcache->get(\'count_ns\');
sleep(1); // allow processes to finish
$memcache->increment(\'count_ns\');
while ($row = $rows->next()) {
if ($count = $memcache->get(\"count-$ns-$table-$id\") {
// increment count
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。