解决Innodb中的并发更新

时间:2013-05-23 01:42:38

标签: mysql queue scalability

问题: 我试图用表格跟踪我网站上的图片点击次数

`click_counts(image_id int(10) NOT NULL, 
 image_clicks int(10) NOT NULL DEFAULT 0, 
 PRIMARY KEY (image_id))Engine=InnoDB;

此表使用查询

进行更新
INSERT INTO click_counts (image_id, image_clicks) 
VALUES ( ? , 1) 
ON DUPLICATE KEY UPDATE image_clicks = image_clicks + 1; 

当同时访问时,此实现会导致争用 - mysql慢查询日志显示同一个image_id的多个insert语句,这意味着由于行级锁定,insert语句(更新同一行)相互阻塞。对于这个问题,什么是可扩展的非阻塞解决方案?我想这将是一个常见的用例,我是新手。

感谢任何建议。

0 个答案:

没有答案