Основные отличия InnoDB и MyISAM
Наиболее часто используемыми механизмами хранения данных в MySQL являются MyISAM и InnoDB.
У этих систем хранения данных есть некоторые преимущества и недостатки в зависимости от потребностей приложения.
Как вы все знаете, механизм хранения данных по умолчанию, выбранный базой данных MySQL — MyISAM.
Основные различия между MyISAM и INNODB заключается в следующем:
Лично я обычно использую InnoDB, хотя она и медленнее. Это делается по той причине, что проект должен быть ориентирован на рост, а заодно и на большие нагрузки.
Как определить, какой движок вы используете?
Примечание: Замените database_name и table_name именем вашей базы данных и таблицы.
Вы можете использовать список таблиц, чтобы узнать, какие таблицы используют MyISAM или InnoDB в качестве механизма хранения по умолчанию.
2. В списке Таблица найдите столбец Тип, чтобы просмотреть типы механизмов хранения. В нашем примере таблица x_admin_logs использует MyISAM в качестве механизма хранения данных по умолчанию.
1. Войдите в phpMyAdmin и выберите предпочтительную базу данных из списка баз данных.
2. Выберите вкладку SQL, чтобы получить доступ к параметрам запроса.
3. Введите следующую команду для отображения всех таблиц, использующих MyISAM в качестве механизма хранения:
На выходе отображается список всех таблиц, содержащих механизм хранения MyISAM.
Примечание: Замените database_name именем вашей базы данных.
Вы можете использовать ту же команду для поиска баз данных с помощью механизма хранения InnoDB. Измените запрос, заменив ENGINE = 'MyISAM' на ENGINE = 'InnoDB'.
У этих систем хранения данных есть некоторые преимущества и недостатки в зависимости от потребностей приложения.
Как вы все знаете, механизм хранения данных по умолчанию, выбранный базой данных MySQL — MyISAM.
Основные различия между MyISAM и INNODB заключается в следующем:
- MyISAM не поддерживает транзакции по таблицам, в то время как InnoDB поддерживает.
- В MyISAM нет возможности блокировки на уровне строк, реляционной целостности, но с InnoDB это возможно. MyISAM имеет блокировку на уровне таблиц.
- InnoDB не поддерживает ПОЛНОТЕКСТОВЫЙ индекс, в то время как MyISAM поддерживает.
- Скорость работы таблицы MyISAM значительно выше по сравнению с таблицами в InnoDB.
- InnoDB — лучший вариант, когда вы имеете дело с большей базой данных, потому что он поддерживает транзакции, объем, в то время как MyISAM подходит для небольшого проекта.
- Поскольку InnoDB поддерживает блокировку на уровне строк, это означает, что вставка и обновление намного быстрее по сравнению с MyISAM.
- InnoDB поддерживает свойство ACID (Атомарность, Консистенция, Изоляция и Долговечность), в то время как MyISAM не поддерживает.
- В таблице InnoDB поле AUTO_INCREMENT является частью индекса.
- Как только таблица в InnoDB удалена, то она не может быть восстановлена.
- InnoDB не сохраняет данные как уровень таблицы, поэтому при реализации select count(*) from table будет снова сканировать всю таблицу, чтобы вычислить количество строк, в то время как MyISAM сохраняет данные как уровень таблицы, так что вы можете легко прочитать сохраненный номер строки.
- MyISAM не поддерживает ограничения ссылочной целостности ВНЕШНЕГО КЛЮЧА, в то время как InnoDB поддерживает.
- Вы можете выбрать механизм хранения данных в соответствии с потребностями приложения, потому что оба они имеют некоторые преимущества и недостатки.
Лично я обычно использую InnoDB, хотя она и медленнее. Это делается по той причине, что проект должен быть ориентирован на рост, а заодно и на большие нагрузки.
Как определить, какой движок вы используете?
А) Проверка через консоль SSH
1. Откройте терминал и войдите в MySQL. Затем отобразите список баз данных:SHOW DATABASES;
2. Найдите предпочтительную базу данных из списка и выберите ее:USE database_name;
3. Затем используйте команду SHOW CREATE TABLE для отображения информации о таблице и механизме хранения:SHOW CREATE TABLE database_name.table_name;
В приведенном ниже примере выходные данные перечисляют MyISAM как механизм хранения данных по умолчанию.Примечание: Замените database_name и table_name именем вашей базы данных и таблицы.
Б) Проверка через phpMyAdmin
Есть два способа проверить механизм хранения данных по умолчанию в phpMyAdmin:- Из списка таблиц.
- Запустив запрос.
Вы можете использовать список таблиц, чтобы узнать, какие таблицы используют MyISAM или InnoDB в качестве механизма хранения по умолчанию.
Из списка таблиц
1. Откройте phpMyAdmin и выберите предпочтительную базу данных из списка.2. В списке Таблица найдите столбец Тип, чтобы просмотреть типы механизмов хранения. В нашем примере таблица x_admin_logs использует MyISAM в качестве механизма хранения данных по умолчанию.
Запустив запрос
Другой способ отображения механизма хранения по умолчанию-это выполнение запроса.1. Войдите в phpMyAdmin и выберите предпочтительную базу данных из списка баз данных.
2. Выберите вкладку SQL, чтобы получить доступ к параметрам запроса.
3. Введите следующую команду для отображения всех таблиц, использующих MyISAM в качестве механизма хранения:
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'database_name' and ENGINE = 'myISAM';
4. Нажмите кнопку Вперед, чтобы выполнить запрос.На выходе отображается список всех таблиц, содержащих механизм хранения MyISAM.
Примечание: Замените database_name именем вашей базы данных.
Вы можете использовать ту же команду для поиска баз данных с помощью механизма хранения InnoDB. Измените запрос, заменив ENGINE = 'MyISAM' на ENGINE = 'InnoDB'.