INSERT ... ПРИ АКТУАЛИЗИРАНЕ НА ДУБЛИКАТ КЛЮЧ
се описва като "вмъкване в смесен режим" за целите на AUTO_INCREMENT
на InnoDB боравене. Вмъкванията със смесен режим са основно тези, при които максимум брой на изискваните AUTO_INCREMENT
стойностите са известни, но сумата, която действително ще е необходима не е.
Вмъкванията в смесен режим се обработват специално по подразбиране, както е описано в Документи на MySQL :
Ако използвате InnoDB, вашите алтернативи са:
- Избягвайте
INSERT ... ПРИ АКТУАЛИЗИРАНЕ НА ДУПЛИКАТ КЛЮЧ
. - Задайте
innodb_autoinc_lock_modeкод>
параметър до0
, за "традиционен" режим на заключване на автоматично увеличение, който гарантира, че всичкиINSERT
операторите ще присвоят последователни стойности заAUTO_INCREMENT
колони. Това обаче се постига чрез заключване по време на изявлението, така че има загуба на производителност, свързана с тази настройка. - (Препоръчително) Игнорирайте пропуските в
AUTO_INCREMENT
колона.
Забележка:AUTO_INCREMENT
обработката е напълно различна при MyISAM, който не показва това поведение.