問題: 表を使用して Web サイトの画像のクリックを追跡しようとしています
`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 に対して複数の挿入ステートメントが表示されます。これは、行レベルのロックにより (同じ行を更新するための) 挿入ステートメントが互いにブロックされていることを意味します。この問題に対するスケーラブルで非ブロッキングのソリューションは何でしょうか? これは、私が初めて使用する一般的なユースケースだと思います。
提案をお待ちしております。