Пропускная способность MyISAM пронзает в 12 000 рекордных вставок

Я тестирую производительность базы данных с объемной записью, вставляет.

Обе системы идентичны кроме механизма устройства хранения данных

**Database      1000        4000        12000**
MySQL_InnoDB    60.95330976 218.2572161 262.1174723
MySQL_MyISAM    88.55827134 307.503075  684.8142441

Метрика здесь является пропускной способностью, определенной как операции/секунда.

Как Вы видите при вставке 1 000 записей, оба очень похожи, снова в 4 000.

Не уверено, почему MyISAM пронзает этот высоко по сравнению с InnoDB в 12 000 рекордных вставок. Это могло произойти из-за размера буфера? Мне установили значения по умолчанию на уровне 8 МБ, и я решил, что и 1 000 записей и 4 000 записей в том буфере, но 120 000 записей превышают размер буфера 8 МБ. Это могло быть причиной экспоненциального повышения пропускной способности?

Я больше интересуюсь тем, почему MyISAM имеет этот экспоненциальный скачок в операциях/секунда в 12 000, вставляет, когда InnoDB, кажется, намного более линеен.

0
задан 23 April 2015 в 22:32
2 ответа

С помощью innodb вы можете заполнять журнал транзакций ( innodb_log_size ). При вставке InnoDB сначала записывает все в журнал транзакций. Попав в журнал, транзакции применяются к самой базе данных. Так что, если сервер выйдет из строя в середине транзакции, он может воспроизвести журнал (повторно применить транзакции), чтобы данные были согласованы.

На самом деле это означает, что все данные дважды записываются на диск.

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

(Да, и обратите внимание на размер журнала. Если вы сделаете его слишком большим, восстановление после сбоя сервера может занять много времени)

0
ответ дан 5 December 2019 в 12:46

Увеличьте размер пула, безусловно, может иметь очень заметное влияние на производительность InnoDB. Попробуйте увеличить его до 128/256 МБ и повторите попытку.

Здесь вы можете найти дополнительную информацию.

0
ответ дан 5 December 2019 в 12:46

Теги

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