Опубликовано Василич (не зарегистрирован) в Втр, 12/28/2010 - 11:15.
> Много инсёртов и много селектов, тогда конечно выигрывает innodb, т.к не блочит всю таблицу
Не угадали. В MyISAM инсерты не блокируют чтение!!!
Второй момент, наводящий на всех ужас - блокировки таблицы целиком: в MyISAM эти блокировки происходят гоооораздо быстрее, т.к. не перегружены наворотами транзакционности.
innodb (а еще лучше XtraDB, как улучшенный innodb, см. MariaDB) необходимо использовать когда необходимы транзакции (сюда же попадает и контроль целостности с помощью тех же внешний ключей), а также ситуации когда в базе много апдейтов и тяжелые (длительные) селекты.
Большинства тормозов в MyISAM можно избежать если проектировать базу с учетом сильных и слабых сторон этого движка. Плюс, сам движок позволяет ускорить многие вещи (напр. операции с DELAYED и т.п.).
Плюс, зачастую необходимо прикидывать расход оперативной памяти сервера (с MyISAM это будет в разы меньше, чем с InnoDB).
Так что выбор между этими движками не так прост как кажется. А тут еще на подходе движок Aria (см. MariaDB - так теперь называется MySQL в исполнении его изначальных разработчиков, которые ушли из SUN и Oracle развивать мускул)...
PS: ну и завсегда очень полезно иногда перечитывать раздел Оптимизации MySQL из штатной документации.
> Много инсёртов и много
> Много инсёртов и много селектов, тогда конечно выигрывает innodb, т.к не блочит всю таблицу
Не угадали. В MyISAM инсерты не блокируют чтение!!!
Второй момент, наводящий на всех ужас - блокировки таблицы целиком: в MyISAM эти блокировки происходят гоооораздо быстрее, т.к. не перегружены наворотами транзакционности.
innodb (а еще лучше XtraDB, как улучшенный innodb, см. MariaDB) необходимо использовать когда необходимы транзакции (сюда же попадает и контроль целостности с помощью тех же внешний ключей), а также ситуации когда в базе много апдейтов и тяжелые (длительные) селекты.
Большинства тормозов в MyISAM можно избежать если проектировать базу с учетом сильных и слабых сторон этого движка. Плюс, сам движок позволяет ускорить многие вещи (напр. операции с DELAYED и т.п.).
Плюс, зачастую необходимо прикидывать расход оперативной памяти сервера (с MyISAM это будет в разы меньше, чем с InnoDB).
Так что выбор между этими движками не так прост как кажется. А тут еще на подходе движок Aria (см. MariaDB - так теперь называется MySQL в исполнении его изначальных разработчиков, которые ушли из SUN и Oracle развивать мускул)...
PS: ну и завсегда очень полезно иногда перечитывать раздел Оптимизации MySQL из штатной документации.
С наступающим Новым годом!