Мы используем cookie-файлы
Для оптимизации работы нашего сайта мы используем cookie-файлы. Продолжая использовать сайт, Вы соглашаетесь с использованием cookie-файлов.
  • UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепр
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 170-15-42  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 630-90-82  MTC
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

MySQL. Проблема з INSERT IGNORE та innodb_autoinc_lock_mode

Форумы MySQL Проблема з INSERT IGNORE та innodb_autoinc_lock_mode
dabeedj
01.06.2016
хостинг: есть
домен: нет
Проблема з INSERT IGNORE та innodb_autoinc_lock_mode
Доброго дня
Пропоную змінити параметер у mysql.ini
Замість стандартного значення прописати
innodb_autoinc_lock_mode = 0
На даний момент при спробі INSERTу дубляжу унікального ключа за допомогою INSERT IGNORE вставка не відбувається (як і має бути), але спрацьовує auto_increment
Таким чином, якщо, для прикладу, поточний primiry key auto_increment = 1 і зробити 10 вставок з дублями, кількість рядків не збільшиться, а auto_increment буде = 11
Наскіьки мені відомо, на нормально роботузвичайних запитів воно не вплине
Хотів би почути вашу думку
Илья
02.06.2016
хостинг: есть
домен: есть
1
Режим consecutive был создан для того, чтоб дать возможность одновременно выполнять несколько простых INSERT в таблицу без необходимости блокировать другие INSERT запросы. Этого нет в traditional, который был до версии 5.1 - там любой INSERT запрос блокирует другой INSERT. Да, минусом в этом случае является увеличение значения auto increment при MIXED INSERT и INSERT ON DUPLICATE KEY UPDATE
dabeedj
02.06.2016
хостинг: есть
домен: нет
І що, в даному випадку, білше зло?:)
Для мене consecutive.
Можливо є якесь рішення, як обійти це і не завалити ресурси сервака, про яке я не знаю?:)
Илья
02.06.2016
хостинг: есть
домен: есть
1
Можливо є якесь рішення, як обійти це і не завалити ресурси сервака, про яке я не знаю © dabeedj

Возможно перевод этой таблицы на MyISAM решит проблему? Если транзакций нет, то вполне возможно это будет выход из ситуации?
dabeedj
02.06.2016
хостинг: есть
домен: нет
Якби не були потрібні зовнішні ключі, то я б так і зробив
Илья
02.06.2016
хостинг: есть
домен: есть
А на что влияет рост значения id в таблице? почему не получается просто проигнорировать этот факт?
dabeedj
02.06.2016
хостинг: есть
домен: нет
Як в одному анекдот - "нєакуратнєнько виходіт":)
Таких "прольотів" може бути тисячі за раз і букавальне за пару днів можна добратись до 7-8-значних id, при тому, що реально записів буде декілька сотень
info620
02.06.2016
хостинг: есть
домен: есть
2
Таких "прольотів" може бути тисячі за раз і букавальне за пару днів можна добратись до 7-8-значних id, при тому, що реально записів буде декілька сотень
© dabeedj


Оберіть коли навантаження найменше та по крону запускайте в цей час скрипт що буде перевстановлювати ID - якщо у вас UPDATE для ключів CASCADE тоді ключи оновлюяться автоматично - профіт!
Або перейдіть на UUID тоді проблема відстрочиться на ...... багато там щось ~ 10^42 варіантів + UUID генерується по часу якщо я правельно пам'ятаю :)

І доречі з огляду на ACID consecutive все ж добро ;)

Update ~10^38 точніше 2^128 ) трошки менше але це все рівно більше ніж BIGINT в якому 2^64
dabeedj
02.06.2016
хостинг: есть
домен: нет
Хороша ідея, загалом:) Але я з тих "бувших", які мали 48кБ RAM на початках і я терпіти не можу таку "розточітєльность":)))
info620
03.06.2016
хостинг: есть
домен: есть
Хороша ідея, загалом:) Але я з тих "бувших", які мали 48кБ RAM © dabeedj


Не повірите але не ви один :) Проте час іде і треба еволюціонувати ;)

P.S. Добре добре в мене не 48КБ було вже, а в мегабайтах. Але 8МБ це було мега круто і пакування данних через бітові поля в Сях було нормою:)
dabeedj
03.06.2016
хостинг: есть
домен: нет
Я взагалі на Сях намагався максимум, що можу, на ассемблері ембедити:) Ібо ібо:)
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

Если вы уже зарегистрированы Вам необходимо войти на форум.

Горячая линия
(044)
392 74 33
другие города