mysql 写计数器需要注意的问题详解数据库

MySql计数器,如网站点击数,如何实现高性能高并发的计数器功能 由于并发的时候 不能同时写入一行数据 所以要分开写


先创建表
CREATE TABLE `article_view`(
`article_id` int(11) NOT NULL,
`pond` tinyint(4) NOT NULL COMMENT '池子,就是用来随机用的',
`view` int(11) NOT NULL,
PRIMARY KEY (`article_id`, `pond`)
)ENGINE=InnoDB;

小访问量的随机池子100个肯定多了,三五个足矣。每次访问的时候,随机一个数字(1-100)作为pond,如何该pond存在则更新view+1,否则插入,view=1。借助DUPLICATE KE


INSERT INTO `article_view` (`article_id`, `pond`, `view`) VALUES (123, RAND()*100, 1) ON DUPLICATE KEY UPDATE `view`=`view`+1

统计的时候


SELECT SUM(`view`) FROM `article_view` WHERE `article_id`='123'

2 还有就是用消息队列的 一般用消息队列比较靠谱(特别有百万数据的时候)

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/database/4027.html

(0)
上一篇 2021年7月16日 18:28
下一篇 2021年7月16日 18:28

相关推荐

发表回复

登录后才能评论