Универсальный скрипт добавит в базу index и конвертирует в InnoDB для Opencart v3

baltun

Администратор
Сообщения
10.731
Реакции
2.542
Баллы
2.003
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 — ситуация в многозадачной среде или СУБД, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, захваченных самими этими процессами;
Выводы:
  1. MyISAM стоит использовать, если нужен полнотекстовый поиск до версии MySQL 5.6.4
  2. MyISAM подойдет, когда в таблице очень мало записей и большое количество чтений.
  3. Во всех остальных случаях нужно использовать InnoDB.
Скрипт который все делает называется . Закачиваете его в корневую категорию магазина и дописывает https://доменное_имя/turbo.php и следуете инструкциям в скрипте. Наша подборка index для ускорения работы Opencart v3.
 

Вложения

  • Atomix-Opencart-Turbo-v.0.2-master.zip
    5.4 КБ · Просмотры: 19
Последнее редактирование:
Назад
Верх Низ