Mysql Оптимизация вставок в innodb

Ярослав

Новичок
Приветствую!

Есть таблица на движке innodb.
Записей пока около 10М, в будущем может быть до 15М.
За минуту в пиках может доходить до 2К вставок.
Данные хранятся только за последний месяц. Старые удаляю по крону.
Множественные одиночные вставки тормозят диск, из-за чего страдают и другие сервисы.
Интересует именно тюнинг на вставку.
Если установить innodb_flush_log_at_trx_commit = 2, то скорее всего поможет, но ставить это нужно глобально, а я не хочу чтобы влияло на другие таблицы тоже.

Если к примеру сделать MEMORY таблицу, вставлять туда и потом делать вставку из этой таблы уже в innodb раз в минуту по крону, но все за раз. Думаю это наверняка поможет.

Какие еще варианты возможны?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Индексов много на таблице? Часто ли с нее читают данные или она чисто как архив?
 

Ярослав

Новичок
Индексов много на таблице? Часто ли с нее читают данные или она чисто как архив?
таблица довольно проста
id int(11) autoincrement PRIMARY
account int(11)
create_date date // INDEX
ip int(11) // INDEX
+ еще несколько varchar(100) полей

К таблице делаются join (еще пара таблиц, в среднем 3М записей), но отрабатывает это быстро - индексы работают хорошо
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Как угодно, хоть в отдельную таблицу писать, хоть в монгу, хоть в редиску, хоть в файл. Потом выгрести оттуда все и записать в базу.
 

Ярослав

Новичок
Как угодно, хоть в отдельную таблицу писать, хоть в монгу, хоть в редиску, хоть в файл. Потом выгрести оттуда все и записать в базу.
Ясно
Ну это то, что я и предполагал в первом топике
Если к примеру сделать MEMORY таблицу, вставлять туда и потом делать вставку из этой таблы уже в innodb раз в минуту по крону, но все за раз. Думаю это наверняка поможет.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Можно как обходной маневр еще отрубать ключи-индексы на время вставки, потом включать, но это не твой случай.
 
Сверху