baltun
Администратор
- Сообщения
- 12.351
- Реакции
- 3.103
- Баллы
- 1.833
MySQL поддерживает два самых популярных движка InnoDB и MyISAM, но в чем же их отличия? Давайте посмотрим более подробно и более понятно. В таблице ниже я попробовал показать разницу между MyISAM и InnoDB собрав данные с официальных и неофициальных источников вместе:
Более детальное описание терминов:
Описание | MyISAM | InnoDB |
Транзакции | Нет | Да |
Внешние ключи | Нет | Да |
Блокировки | На уровне таблиц | На уровне строк |
Одновременные запросы к разным частям таблицы | Медленнее | Быстрее |
При смешанной нагрузке в таблице (SELECT/UPDATE/DELETE/INSERT) | Медленнее | Быстрее |
Операция INSERT | Быстрее | Медленнее |
Если преобладают операции чтения (SELECT) | Работает быстрее | Работает медленнее |
Deadlock | Не возникают | Возможны |
Полнотекстовый поиск | Да | Нет (Доступен начиная с MySQL 5.6.4) |
Запрос вида SELECT count(*) | Быстрее | Медленнее |
Файловое хранение таблиц | Каждая таблица в отдельном файле | По умолчанию данные хранятся в больших совместно используемых файлах, но возможно хранение каждой таблицы в отдельном файле |
Размер занимаемого места на диске | Меньше | Больше (примерно в 1,5 раза) |
Поведение в случае сбоя | Ломается вся таблица | Можно восстановить по логам транзакций |
Более детальное описание терминов:
- Транзакция (Transaction) – блок операторов SQL, который в случае ошибки в одном запросе, возвращается к предыдущему состоянию (Rollback), и только в случае выполнения всех запросов подтверждается (Commit);
- Внешние ключи – это способ связать записи в двух таблицах по определенным полям так, что при обновлении поля в родительской автоматически происходит определенное изменение поля в дочерней (создается ключ в дочерней таблице, который ссылается на родительскую);
- Блокировка на уровне строк — в ситуации когда процессу нужно обновить строку в таблице, то он блокирует только эту строку, позволяя другим обновлять другие строки параллельно;
- Deadlock — ситуация в многозадачной среде или СУБД, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, захваченных самими этими процессами;
- MyISAM стоит использовать, если нужен полнотекстовый поиск до версии MySQL 5.6.4
- MyISAM подойдет, когда в таблице очень мало записей и большое количество чтений.
- Во всех остальных случаях нужно использовать InnoDB.
У вас нет разрешения на просмотр ссылки, пожалуйста Вход или Регистрация
. Закачиваете его в корневую категорию магазина и дописывает https://доменное_имя/turbo.php и следуете инструкциям в скрипте. Наша подборка index для ускорения работы Opencart v3.Вложения
Последнее редактирование: