- ON DUPLICATE KEY UPDATE
- REPLACE INTO
CREATE TABLE IF NOT EXISTS test_table (id INT PRIMARY KEY, data VARCHAR(20));
n |
ON DUPLICATE KEY UPDATE Time Taken |
REPLACE INTO Time Taken |
---|---|---|
1 | 2.525ms | 1.267ms |
10 | 2.8037ms | 17.238ms |
100 | 27.2609ms | 139.3891ms |
500 | 105.1636ms | 706.9529ms |
1000 | 217.6239ms | 1.2950787s |
5000 | 1.235172s | 6.8721067s |
10000 | 2.3808408s | 12.8781352s |
50000 | 11.9876923s | 3m2.1582408s |
ON DUPLICATE KEY UPDATE
only updates existing rows on conflict, which minimizes locking and reduces index operations.REPLACE INTO
first deletes any existing row and then inserts a new one, causing additional I/O overhead, index adjustments, and potentially larger locks, which slow down performance, particularly as the data volume grows.
ON DUPLICATE KEY UPDATE
is generally more efficient thanREPLACE INTO
for large-scale operations, especially when avoiding unnecessary deletions and insertions.