февраля 23, 2009

Касательно INNODB

Мой чисто практический опыт применения InnoDB на производственных мощностях показал, что данный драйвер гавно, массивные инсерты и апдейты кладут его в смерть. Симптомы: непонятные зависания тредов мускуля, потери данных. SQL вроде проходит, ошибки не возвращает, а данные не записались.

Производственные мощности - это база в десятки гигабайт, >1k QPs и все такое.

Конечно в InnoDB есть такие вещи как FK Constraints, вроде даж триггеры есть, и даже локи на уровне строки, но .... увы. По шустроте с MyISAM он просто несравним.

Это все вопреки "форумным" мнениям начинающих программистов-теоретиков, что InnoDB рулит. Рулит. На десятке инсертов в сутки.

Еще одно заблуждение - InnoDB надежнее MyISAM, MyISAM крашится, InnoDB нет, у него мол есть восстановление из лог файла. Ну начнем с того что InnoDB вообще по непонятным причинам теряет данные при более-менее серъезной мощности. MyISAM крашится да. При криворуких составлениях схемы БД, при криворукой работе с ней и при внезапном выключении питания.

Ничего из этого лично меня не беспокоит и я наслаждаюсь производительностью MyISAM. Чего и вам советую.

Если будет время, выложу какой нить бенчмарк.

Кросс-пост: http://www.pentarh.com/wp/2009/02/23/innodb-vs-myisam/