Mysql 在Innodb中解析并发更新
问题: 我试图通过一个表格来跟踪我网站中的图片点击Mysql 在Innodb中解析并发更新,mysql,queue,scalability,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 UPD
`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慢速查询日志会显示同一映像_id的多个insert语句,这意味着由于行级锁定,insert语句(更新同一行)会相互阻塞。对于这个问题,什么是可扩展的非阻塞解决方案?我想这将是一个常见的用例,我是新手
感谢您的建议。。我相信这是一个可扩展的解决方案。你有什么问题吗?是的,我想我们需要更好地解释这个问题。同时,切换到UNSIGNED int,注意“+1”代码不是空安全的。