|
Доброго дня
Пропоную змінити параметер у mysql.ini
Замість стандартного значення прописати
innodb_autoinc_lock_mode = 0
На даний момент при спробі INSERTу дубляжу унікального ключа за допомогою INSERT IGNORE вставка не відбувається (як і має бути), але спрацьовує auto_increment
Таким чином, якщо, для прикладу, поточний primiry key auto_increment = 1 і зробити 10 вставок з дублями, кількість рядків не збільшиться, а auto_increment буде = 11
Наскіьки мені відомо, на нормально роботузвичайних запитів воно не вплине
Хотів би почути вашу думку
|
|
Режим consecutive был создан для того, чтоб дать возможность одновременно выполнять несколько простых INSERT в таблицу без необходимости блокировать другие INSERT запросы. Этого нет в traditional, который был до версии 5.1 - там любой INSERT запрос блокирует другой INSERT. Да, минусом в этом случае является увеличение значения auto increment при MIXED INSERT и INSERT ON DUPLICATE KEY UPDATE
|
|
І що, в даному випадку, білше зло?:)
Для мене consecutive.
Можливо є якесь рішення, як обійти це і не завалити ресурси сервака, про яке я не знаю?:)
|
|
Можливо є якесь рішення, як обійти це і не завалити ресурси сервака, про яке я не знаю© dabeedj
Возможно перевод этой таблицы на MyISAM решит проблему? Если транзакций нет, то вполне возможно это будет выход из ситуации?
|
|
Якби не були потрібні зовнішні ключі, то я б так і зробив
|
|
А на что влияет рост значения id в таблице? почему не получается просто проигнорировать этот факт?
|
|
Як в одному анекдот - "нєакуратнєнько виходіт":)
Таких "прольотів" може бути тисячі за раз і букавальне за пару днів можна добратись до 7-8-значних id, при тому, що реально записів буде декілька сотень
|
|
Таких "прольотів" може бути тисячі за раз і букавальне за пару днів можна добратись до 7-8-значних id, при тому, що реально записів буде декілька сотень
© dabeedj
Оберіть коли навантаження найменше та по крону запускайте в цей час скрипт що буде перевстановлювати ID - якщо у вас UPDATE для ключів CASCADE тоді ключи оновлюяться автоматично - профіт!
Або перейдіть на UUID тоді проблема відстрочиться на ...... багато там щось ~ 10^42 варіантів + UUID генерується по часу якщо я правельно пам'ятаю :)
І доречі з огляду на ACID consecutive все ж добро ;)
Update ~10^38 точніше 2^128 ) трошки менше але це все рівно більше ніж BIGINT в якому 2^64
|
|
Хороша ідея, загалом:) Але я з тих "бувших", які мали 48кБ RAM на початках і я терпіти не можу таку "розточітєльность":)))
|
|
Хороша ідея, загалом:) Але я з тих "бувших", які мали 48кБ RAM© dabeedj
Не повірите але не ви один :) Проте час іде і треба еволюціонувати ;)
P.S. Добре добре в мене не 48КБ було вже, а в мегабайтах. Але 8МБ це було мега круто і пакування данних через бітові поля в Сях було нормою:)
|
|
Я взагалі на Сях намагався максимум, що можу, на ассемблері ембедити:) Ібо ібо:)
|