MySQL InnoDB, подходит для этого сценария?

База данных My MysQL содержит несколько таблиц MyISAM с каждой таблицей, содержащей миллионы строк. Существует тяжелая нагрузка вставки на базу данных, таким образом, я не могу выйти, ВЫБИРАЕТ на той живой базе данных. Вместо этого я создаю копию базы данных для запросов и провожу анализ этого.

Для анализа я должен выпустить несколько параллельных запросов. Запросы независимы (т.е. результаты запросов не объединены вместе), но они воздействуют на те же таблицы большую часть времени. Насколько я знаю, вся таблица MyISAM заблокирована для каждого запроса, что означает, что параллельные независимые запросы были бы медленными. Идеально, я предпочел бы механизм, который не поддерживает "БЛОКИРОВКИ". Я предполагаю, что MySQL не имеет такого механизма, таким образом, я должен использовать InnoDB? Я мог бы пропускать партию вещей здесь. Предложите то, что является правильным путем для взятия здесь.

Спасибо

1
задан gmemon 21 April 2010 в 15:13
поделиться

2 ответа

MyISAM блокировки чтения совместимы, поэтому запросы SELECT не будут блокировать друг друга.

Если ваши аналитические запросы к базе данных реплик не пишут, а только читают, тогда можно использовать MyISAM .

1
ответ дан 3 September 2019 в 01:08
поделиться

Вы можете использовать MyISAM и использовать INSERT DELAYED :

Когда клиент использует INSERT DELAYED, он получает разрешение от server сразу, и строка ставится в очередь для вставки, когда таблица не используется никаким другим потоком.

Еще одним важным преимуществом использования INSERT DELAYED является то, что вставки от многих клиентов объединяются вместе и записываются в один блок. Это намного быстрее, чем выполнение множества отдельных вставок.

1
ответ дан 3 September 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: