У меня есть большая таблица MySQL (~ 10 миллионов строк, 6,5 ГБ), которую я использую для чтения и записи. Это MyISAM, и я получаю много блокировок из-за блокировки всех таблиц MyISAM при записи.
Я решил попробовать перейти на InnoDB, который рекомендуется для таблиц чтения / записи, и он блокирует только определенные строки при записи.
После преобразования я протестировал операторы вставки, и оказалось, что это занимает в таблице InnoDB примерно в 15 раз больше (от 0,1 до 1,5 секунд), чем в таблице MyISAM. Почему?
Я еще ничего не настроил для InnoDB и планирую добавить разделы, но эта цифра все еще для меня неожиданна. Конечно же, таблицы такие же, индексы и т.д.
Дополнительная информация по запросам:
2 индекса. первичным является data_id типа Big INT, а не уникальный user_id типа varchar (255).
Вставки содержат ~ 150 строк вместе, которые имеют одинаковый user_id.
Размер индексов: 200 МБ в MyISAM, 400 МБ в InnoDB