Если вы создаете БД по обстоятельствам и не уверены как база будет использоваться, выбирайте Innodb.
Innodb следует использовать:
Когда взаимодействие с базой имеет характер OLTP (http://ru.wikipedia.org/wiki/OLTP)
Когда требуются транзакции.
Когда нужна высокая надежность хранения и быстрое восстановление после сбоя.
Innodb хорошо справляется со смешанной нагрузкой (select/update/delete/insert).Минусы Innodb:
могут возникать deadlock, не свойственные MyISAM;
Медленнее выполняются insert операции и работа с блобами;
Не поддерживается полнотекстовый поиск;
Проблемы с производительностью COUNT(*);
Для Innodb нет поддержки mysqlhotcopy;
С MyISAM есть одна нехорошая проблема, таблица может на ровном месте отказаться работать до выполнения REPAIR TABLE.
Случается такое крайне редко, но и этого хватает. Пример: http://blog.lexa.ru/2008/10/05/vash_mysql___to_esche_g.html
Поэтому с для MyISAM рекомендуется организовать периодический запуск mysqlcheck через cron.
Из-за особенности организации блокировки (блокировка на уровне таблицы),
MyISAM имеет смысл использовать, когда преобладают операции insert или select, но крайне мало delete или update.
Когда можно обойтись без транзакций.
Когда выполняются запросы, характерные для OLAP
(http://ru.wikipedia.org/wiki/OLAP)
Когда таблица используется для хранения лога;
Когда много запросов вида Select count(*).
Когда нужно задействовать средства полнотекстового поиска.
Такие альтернативные хранилища, как PBXT, Innodb plugin, XtraDB, Maria, Falcon, еще находятся на стадии разработки и
имеют экспериментальный характер.
URL: http://www.bigdbahead.com/?p=130 http://www.mysqlperformanceblog.com/2009/01/12/should-you-mo.../
Обсуждается: https://www.opennet.ru/tips/info/1958.shtml