#mysql #innodb #myisam
В чем разница между движками MySQL - InnoDB и MyISAM? Каковы их слабые и сильные стороны?
Ответы
Ответ 1
MyISAM поддерживает сжатие таблиц в отличии от InnoDB. MyISAM имеет встроенные полнотекстный поиск в отличии от InnoDB. InnoDB поддерживает транзакции в отличии от MyISAM. InnoDB поддерживает блокировки уровня строки (MyISAM - только уровня таблицы). InnoDB поддерживает ограничения внешних ключей (MyISAM - нет). InnoDB более надежна при больших объемах данных. InnoDB в теории немного быстрее.Ответ 2
До недавнего времени InnoDB не поддерживала полнотекстовые индексы. InnoDB не хранит ни количество строк в таблице, ни следующее значение автоинкрементного поля. Первое не так важно, поскольку мало кому бывает нужно считать все строки в таблице, без какого бы то ни было фильтра. А вот второе в теории чревато. Если после удаления последнего выданного id сервер будет перегружен, то id будет выделен повторно. Впрочем, я не слышал о случавшихся такого рода косяках на практикеОтвет 3
Есть один очевидный (но не сразу) минус MyISAM, вытекающий из особенностей блокировок. Если в системе могут выполняться тяжелые SELECTы, то любой UPDATE на участвующие в нем таблицы будет ждать окончания SELECTа и блочить все дальнейшие запросы. Если с базой работают достаточно активно, то это не вариант.Ответ 4
Если коротко, то в InnoDB есть поддержка транзакций, а у MyISAM нету. И еще MyISAM в отличие от InnoDB поддерживает текстовую индексацию. В основном используется MyISAM.
Комментариев нет:
Отправить комментарий