MySQL MyISAM и использование памяти innoDB - PullRequest
1 голос
/ 04 ноября 2008

Кто-нибудь знает, сколько памяти использует MyISAM и innoDB? Как соотносится использование их памяти при работе с маленькими таблицами и с большими (до 32 ГБ)?

Я знаю, что innoDB тяжелее MyISAM, но насколько больше?

Любая помощь будет оценена.

Спасибо, ДБ

1 Ответ

6 голосов
/ 04 ноября 2008

Вы не можете их так сравнивать. Или, по крайней мере, вы не должны. Каждый использует память по-своему. Это особенно верно, если вы настраиваете свою БД на производительность.

MyISAM имеет специальные буферы для индексов и использует дисковый буфер ОС для кэширования других данных. Не имеет смысла иметь ваши буферы больше, чем сумма ваших индексов, но чем больше памяти вы дадите, тем быстрее она будет.

InnoDB имеет пул буферов для всех данных. Вы настраиваете это на основе вашей доступной памяти и того, сколько вы хотите дать. InnoDB буферизует как можно больше ваших данных в памяти. Если вы можете разместить всю БД в памяти, InnoDB никогда не будет читать с диска. Многие базы данных InnoDB видят огромные потери производительности, когда размер данных становится больше, чем пул буферов.

MySQL очень настраивается. Это настраивается для удовлетворения ваших потребностей. Как правило, базам данных должно быть предоставлено как можно больше памяти, поскольку они почти всегда связаны с диском. Чем больше памяти, тем больше буферизуется.

...