в чем разница между InnoDB и MyISAM

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


person gmhk    schedule 11.03.2010    source источник
comment
Дубликат: stackoverflow.com/questions/277440/mysql-myisam -vs-inno-db   -  person Taylor Leese    schedule 11.03.2010
comment
Другой дубликат: stackoverflow.com/questions/20148/myisam-versus-innodb   -  person Taylor Leese    schedule 11.03.2010
comment
@Taylor, подскажите, пожалуйста, как сделать так, чтобы этот пост не дублировался?   -  person gmhk    schedule 11.03.2010
comment
Ну, я ввел innodb myisam в поиск и нашел их вверху. Я думаю, этого должно хватить.   -  person Taylor Leese    schedule 11.03.2010


Ответы (3)


Есть несколько отличий, но самые важные, о которых я могу подумать, это:

  • InnoDB - это транзакционный движок, то есть он поддерживает транзакции.
  • InnoDB поддерживает внешние ключи
  • MyISAM блокирует только на уровне таблицы - InnoDB блокирует на уровне строки


В википедии InnoDB перечислены некоторые различия, некоторые из которых я не заметил я говорил о ;-)

И вас может заинтересовать Глава 13. Механизмы хранения раздел руководства MySQL, который, вероятно, является неплохим справочником, когда речь идет о InnoDB и MyISAM.
Особенно я бы сказал:

person Pascal MARTIN    schedule 11.03.2010
comment
@pascal вы хотите сказать, что InnoDB обеспечивает доступ к блокировке таблицы и доступа к строке, поэтому это означает, что когда один пользователь выполняет операцию вставки или обновления, я могу предотвратить доступ к этой таблице. - person gmhk; 11.03.2010
comment
@hagrim: насколько я помню, с MyISAM, когда кто-то выполняет некоторую запись, он блокирует всю таблицу (предотвращая любую другую запись) - с InnoDB, по крайней мере в некоторых случаях, он должен блокировать только затронутые строки (позволяя другим людям писать в некоторые другие, неблокированные, строки) - person Pascal MARTIN; 11.03.2010

MySQL Docs предоставляет полезную информацию и случаи применения. Выбранный вами механизм хранения будет зависеть от того, для чего вы его используете.

Самая большая разница в том, что innodb поддерживает ACID-совместимые транзакции и блокировку на уровне строк.

person jasonbar    schedule 11.03.2010

Еще одно важное отличие: пока MyISAM поддерживает полнотекстовый поиск, а InnoDB - нет. Поэтому, если вы хотите, чтобы поисковый индекс действовал по текстовым столбцам, вам нужно использовать MyISAM или взломать.

person Adriano Varoli Piazza    schedule 11.03.2010