
Довольно регулярно у людей, далеких от highload’a, возникает вопрос: Что “правильнее” — MyISAM или InnoDB?
Из личного опыта:
MyISAM, работает шустро, но смущают два момента:
1. Невозможность лочить row. При увеличении базы в будущем, lock на всю таблицу будет играть злые шутки в производительности.
2. Многочисленные жалобы на MyISAM в плане надежности, встречающиеся на страницах интернета. Да что говорить — сам сталкивался с REPAIR’ами в прошлом.
Что смущает в InnoDB:
1. Отсутствие INSERT DELAYED. Очень удобно с его помощью вставлять фоном записи, не требующие срочности появления в базе.
2. Дефолтные настройки. Читал, что MySQL очень плохо работает с InnoDB на дефолтных настройках. В то же время, нигде не нашел вменяемых рекомендаций по их оптимизации.
Таким образом, InnoDB - полноценный версионный движок, MyISAM - как очевидно из названия, ISAM (примеры - dbf, foxpro) + SQL syntax.
Соответственно, выбор целиком зависит от решаемой задачи.
Как правило, InnoDB - OLTP-приложения, MyISAM - OLAP.


Один комментарий
Будь всегда в теме, подпишись на RSS ленту комментов.
В тему