пятница, 25 апреля 2014 г.

MySQL: отличия между MyISAM и InnoDB

Отличия между системами хранения данных MyISAM и InnoDB простым языком.

В данной таблице я попробовал показать разницу между MyISAM и InnoDB на простых примерах:
ОписаниеMyISAMInnoDB
Транзакционный движек?
Транзакция (Transaction) – блок операторов SQL , который в случае ошибки в одном запросе, возвращается к предыдущему состоянию (Rollback), и только в случае выполнения всех запросов подтверждается (Commit)
НетДа
Поддержка внешних ключей
Внешние ключи – это способ связать записи в двух таблицах по определенным полям так, что при обновлении поля в родительской автоматически происходит определенное изменение поля в дочерней (дочернюю и родительскую выбираешь при создании ключа; точнее, создаешь ключ в дочерней, который ссылается на родительскую).
НетДа
Блокировка.
Блокировка на уровне строк, т.е. если процессу нужно обновить строку в таблице, то он блокирует только эту строку, позволяя другим обновлять другие строки параллельно
Блокировка на уровне таблицБлокировка на уровне строк
Одновременные запросы к разным частям таблицы.МедленнееБыстрее
При смешанной нагрузке в таблице (select/update/delete/insert)МедленнееБыстрее
Операция InsertБыстрееМедленнее, ибо есть оверхед на транзакцию, но это цена надежности
Если преобладают операции чтения (SELECT)Работает быстрееРаботает медленнее
Deadlock
Deadlock — ситуация в многозадачной среде или СУБД, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, захваченных самими этими процессами.
Не возникаютВозможны.
Поддержка полнотекстового поискаДаНет
Запрос Count(*)БыстрееМедленнее
Поддержка mysqlhotcopy
Утилита mysqlhotcopy представляет собой Perl-сценарий, использующий SQL-команды LOCK TABLES, FLUSH TABLES и Unix-утилиты cp или scp для быстрого получения резервной копии базы данных.
ДаНет
Файловое хранение таблицКаждой таблице отдельный файлДанные при настройках по умолчанию хранятся в больших совместно используемых файлах
Бинарное копировании таблиц?
Табличные файлы можно перемещать между компьютерами разных архитектур и разными операционными системами без всякого преобразования.
ДаНет
Размер таблиц в БДМеньшеБольше
Поведение в случае сбояКрашится вся таблицаПо логам можно все восстановить
В случае хранения «логов» и подобногоЛучшеХуже
Выводы:
  • Использовать MyISAM лучше в таблицах, которых преобладает один вид доступа: чтение (новостной сайт) или запись (например, логирование) ;
  • Использование InnoDB имеет смысл во всех остальных случаях и случаях повышенных требований по сохранности данных.

Отблагодарить можно через форму справа "Donate" ... )

To reward you via the form on the right "Donate" ... )

:)

Комментариев нет :

Отправить комментарий

друзья )

cridex cms новости со всего мира
парсинг центр