Spec-Zone .ru
спецификации, руководства, описания, API

14.2.1.1. InnoDB как Механизм Хранения MySQL Default

У MySQL есть заслуженная репутация быть удобным в работе и поставить производительность и масштабируемость. В предыдущих версиях MySQL MyISAM был механизмом хранения значения по умолчанию. В нашем опыте, большинство пользователей, никогда изменяемых настройки по умолчанию. С MySQL 5.5 InnoDB становится механизмом хранения значения по умолчанию. Снова, мы ожидаем, что большинство пользователей не будет изменять настройки по умолчанию. Но из-за InnoDB поставляют настройки по умолчанию, пользователи преимуществ ожидают от их RDBMS: Транзакции ACID, Ссылочная целостность, и Восстановление Катастрофического отказа. Давайте исследовать, как использование таблиц InnoDB улучшает Вашу жизнь как пользователя MySQL, DBA, или разработчика.

Тенденции в Использовании Механизма Хранения

В первых годах роста MySQL ранние веб-приложения не продвигали пределы параллелизма и доступности. В 2010 объем жесткого диска и емкость памяти и отношение производительности/цены все прошли через крышу. Пользователи, продвигающие границы производительности MySQL, заботятся много о восстановлении надежности и катастрофического отказа. Базы данных MySQL являются большими, занятыми, устойчивыми, распределяются, и важны.

InnoDB поражает зону наилучшего восприятия этих главных пользовательских приоритетов. Тенденция использования механизма хранения сместилась в пользу более масштабируемого InnoDB. Таким образом MySQL 5.5 является логическим выпуском перехода, чтобы сделать InnoDB механизмом хранения значения по умолчанию.

MySQL продолжает работать над адресацией вариантов использования, которые прежде потребовали таблиц MyISAM. В MySQL 5.6 и выше:

Последствия InnoDB как Механизм Хранения MySQL Default

Запускаясь с MySQL 5.5.5, механизмом хранения значения по умолчанию для новых таблиц является InnoDB. Это изменение применяется к недавно составленным таблицам, которые не определяют механизм хранения с пунктом такой как ENGINE=MyISAM. (Данный это изменение поведения значения по умолчанию, MySQL 5.5 мог бы быть логической точкой, чтобы оценить, могли ли Ваши таблицы, которые действительно используют MyISAM, извлечь выгоду от переключения до InnoDB.)

mysql и information_schema базы данных, та реализация некоторые из внутренностей MySQL, все еще используют MyISAM. В частности невозможно переключить таблицы предоставления, чтобы использовать InnoDB.

Преимущества Таблиц InnoDB

Если Вы используете MyISAM таблицы, но не связываются к ним для технических причин, Вы сочтете много вещей более удобными, когда Вы будете использовать InnoDB таблицы в MySQL 5.5:

Лучшие Методы для Таблиц InnoDB

Если Вы использовали InnoDB в течение долгого времени Вы уже знаете о функциях как транзакции и внешние ключи. В противном случае читайте о них всюду по этой главе. Короче говоря:

Недавние Улучшения для Таблиц InnoDB

Если у Вас есть опыт с InnoDB, но от MySQL 5.1 или ранее, читайте о последних улучшениях InnoDB в Разделе 14.2.4.2,"InnoDB Производительность и Улучшения Масштабируемости" и Раздел 14.2.5,"InnoDB Функции Гибкости, Простоты использования и Надежности". Короче говоря:

Тестирование и Сравнительное тестирование с InnoDB как Механизм Хранения Значения по умолчанию

Даже прежде, чем завершить Ваше обновление от MySQL 5.1 или ранее к MySQL 5.5 или выше, можно предварительно просмотреть, работают ли Ваш сервер базы данных или приложение правильно с InnoDB как механизм хранения значения по умолчанию. Чтобы установить InnoDB как механизм хранения значения по умолчанию с более ранним выпуском MySQL, любой определяет на командной строке --default-storage-engine=InnoDB, или добавьте к Вашему my.cnf файл default-storage-engine=innodb в [mysqld] раздел, затем перезапустите сервер.

Начиная с изменения механизма хранения значения по умолчанию только влияет на новые таблицы, поскольку они создаются, выполняют всю Вашу установку приложения и устанавливают шаги, чтобы подтвердить, что все устанавливает должным образом. Затем осуществите все функции приложения, чтобы удостовериться вся загрузка данных, редактирование, и запросы работы функций. Если таблица положится на некоторую MyISAM-специфичную функцию, то Вы получите ошибку; добавьте ENGINE=MyISAM пункт к CREATE TABLE оператор, чтобы избежать ошибки. (Например, таблицы, которые полагаются на полнотекстовый поиск, должны быть таблицами MyISAM, а не InnoDB.)

Если Вы не принимали преднамеренное решение относительно механизма хранения, и Вы только хотите предварительно просмотреть, как определенные таблицы работают, когда они создаются под InnoDB, дают команду ALTER TABLE table_name ENGINE=InnoDB; для каждой таблицы. Или, чтобы выполнить тестовые запросы и другие операторы, не нарушая исходную таблицу, сделайте копию как так:

CREATE TABLE InnoDB_Table (...) ENGINE=InnoDB AS SELECT * FROM MyISAM_Table;        

С тех пор есть очень много улучшений производительности в InnoDB в MySQL 5.5 и выше, чтобы получить истинную идею производительности с полным приложением при реалистической рабочей нагрузке, установить последний сервер MySQL и выполнить сравнительные тесты.

Протестируйте полный жизненный цикл приложения, от установки, посредством тяжелого использования, и перезапуска сервера. Уничтожьте серверный процесс, в то время как база данных занята, чтобы моделировать перебой в питании, и проверить, что данные восстанавливаются успешно, когда Вы перезапускаете сервер.

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

Проверка, что InnoDB является Механизмом Хранения Значения по умолчанию

Знать, каково состояние InnoDB, делаете ли Вы что - тестируя с более старым MySQL или при всестороннем тестировании с последним MySQL: