Что такое InnoDB и MyISAM в MySQL?


что это InnoDB и MyISAM in MySQL ?

6 87

6 ответов:

InnoDB и MYISAM, являются ли механизмы хранения для MySQL.

эти два отличаются по их реализации блокировки:InnoDB блокирует определенную строку в таблице, а MyISAM блокирует весь MySQL таблица.

вы можете указать тип, предоставив MYISAM или InnoDB при создании таблицы в БД.

посмотреть

InnoDB и MyISAM

InnoDB-это механизм хранения данных для MySQL, входит в стандартную комплектацию во всех текущих двоичные файлы, распространяемые MySQL AB. Свой главное повышение над другим хранением двигатели, доступные для использования с MySQL является ли ACID-совместимая поддержка транзакций

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

Они системы хранения.

http://dev.mysql.com/doc/refman/5.1/en/storage-engines.html

MyISAM: механизм хранения MySQL по умолчанию и тот, который используется больше всего в Интернете, хранилище данных и других средах приложений. MyISAM поддерживается во всех конфигурациях MySQL и является механизмом хранения по умолчанию, если вы не настроили MySQL для использования другого по умолчанию.

InnoDB: транзакция-безопасная (совместимая с ACID) механизм хранения для MySQL, который имеет возможности фиксации, отката и аварийного восстановления для защиты пользовательских данных. InnoDB блокировка на уровне строки (без подъема к большей гранулярностью блокировок) и Oracle стиле непротиворечивые чтения без блокировки увеличения нескольких пользователей параллелизма и производительности. InnoDB хранит пользовательские данные в кластеризованных индексах, чтобы уменьшить ввод-вывод для общих запросов на основе первичных ключей. Для поддержания целостности данных InnoDB также поддерживает ограничения ссылочной целостности внешнего ключа.

Я хотел добавить, что возможность указать конкретный механизм хранения в таблице является одной из ключевых сильных сторон MySQL (помимо простоты использования и хорошей производительности без настройки). Для всех операций, где необходимы транзакции, просто придерживайтесь InnoDB. Однако MyISAM может действительно ускорить работу, когда транзакции не нужны в определенных ситуациях - и требует меньше места на диске и ОЗУ по сравнению с InnoDB.

тем не менее, InnoDB становится все лучше время:

InnoDB 1.1 повышение производительности и масштабируемости

MyISAM не следует за ACID в отличие от InnoDB, который следует за транзакциями для поддержания целостности данных.

MyISAM поддерживает параллельные вставки: если в таблице нет свободных блоков в середине файла данных, вы можете вставить новые строки в же время, что другие потоки читают из таблицы. MySqlDoc

вот почему, MyISAM быстрее и занимает меньше места. Например, механизм хранения MySQL MyISAM не поддерживает транакции.ограничения MySQL MYISAM есть немного называется одновременно-вставить По умолчанию переменная имеет значение 1 и параллельные вставки обрабатываются как описано выше. Если он установлен в 0, параллельные вставки отключены. Если установлено значение 2, параллельные вставки в конце таблицы разрешены даже для таблиц, которые удалили строки. Оператор INSERT может быть выполнен для добавления строк в конец таблицы с select одновременно, если есть нет отверстий / удаленных строк в середине таблицы (во время одновременной вставки).

уровень изоляции по умолчанию OG mysql InnoDB является "Read Repeatable". Для MyISAM нет никакой транзакции. InnoDB использует блокировку уровня строки, в то время как MyISAM может использовать только блокировку уровня таблицы, поэтому InnoDB имеет crash revovery лучше, чем MyISAM. Один должен вручную получить блокировку уровня таблицы в MyISAM, если вы хотите избежать эффектов параллелизма.

InnoDB по умолчанию не myISAM https://dev.mysql.com/doc/refman/5.7/en/innodb-introduction.html "InnoDB-это механизм хранения MySQL по умолчанию. Если вы не настроили другой механизм хранения по умолчанию, выдача инструкции CREATE TABLE без предложения ENGINE= создает таблицу InnoDB"