1/ISAM
ISAM — это хорошо определённый и проверенный временем подход к управлению таблицами данных, который разработан так, чтобы база данных запрашивалась гораздо чаще, чем обновлялась. В результате ISAM быстро выполняет чтения и не занимает много памяти и ресурсов хранения. Два основных недостатка ISAM — это отсутствие поддержки обработки транзакций и неустойчивость к отказу: если ваш жёсткий диск вылетит, файлы данных не удаётся восстановить. Если вы используете ISAM для критически важных приложений, вы всегда должны делать резервные копии всех данных в реальном времени, и MySQL поддерживает такие приложения благодаря своей функции репликации.
2/InnoDB
Он обеспечивает функцию управления транзакциями, которая гарантирует успешное выполнение набора команд, или, если возникает ошибка команд, результат всех команд откатывается; можно предположить, что возможности управления транзакциями очень важны в электронном банкинге. Поддержка функций COMMIT, ROLLBACK и других транзакций. Последняя версия MySQL уже планирует убрать поддержку BDB в пользу InnoDB.
MyIASM — это новая версия таблиц IASM со следующими расширениями: Портативность на бинарном уровне. Индекс столбцов NULL. Для переменных строк меньше фрагментов, чем для таблиц ISAM. Поддержка больших файлов. Лучшее сжатие индекса. Лучше ли иметь статистическое распределение? Лучше и быстрее auto_increment обработке.
Вот некоторые детали и конкретные различия в реализации:
1. InnoDB не поддерживает индексы типа FULLTEXT. 2. Таблицы не сохраняются в InnoDB Конкретные строки, то есть выполнить select count(*) из таблица, InnoDB сканирует всю таблицу, чтобы вычислить, сколько строк, а MyISAM просто считывает сохранённые строки. Обратите внимание, что когда оператор count(*) содержит где условие — работа обеих таблиц одинаковая. 3. Для полей AUTO_INCREMENT типа индекс с только этим полем должен быть включен в InnoDB, но в таблице MyISAM можно создать федеративный индекс с другими полями. 4. УДАЛИТЬ Из таблицы InnoDB не воссоздаёт таблицу, а удаляет её строка за строкой. 5.ТАБЛИЦА ЗАГРУЗКИ ИЗ Операция MASTER не работает для InnoDB, решение заключается в том, чтобы сначала изменить таблицу InnoDB в таблицу MyISAM, затем импортировать данные, а затем изменить их в таблицу InnoDB, но она не применима к таблицам, использующим дополнительные функции InnoDB (например, внешние ключи).
Кроме того, блокировка строки таблицы InnoDB не является абсолютной: если MySQL не может определить область сканирования при выполнении SQL-оператора, таблица InnoDB также заблокирует всю таблицу, например, обновление таблица num=1, где имя типа "a%"
Ни одна таблица не является всемогущей, только выбрав подходящий тип таблицы для бизнес-типа, можно максимизировать преимущества производительности MySQL.
MySQL Когда администратор создаёт базу данных, таблица по умолчанию выбирает тип InnoDB.
InnoDB, MyISAM В чём разница между этими двумя типами: тип MyISAM не поддерживает продвинутую обработку, такую как транзакционная обработка, тогда как тип InnoDB поддерживает. Таблицы типа MyISAM делают акцент на производительности, которая работает на несколько градусов быстрее, чем тип InnoDB, но не обеспечивает поддержки транзакций, в то время как InnoDB предоставляет продвинутые функции баз данных, такие как поддержка транзакций, внешние ключи и др.
Бинарные файлы данных типа MyISAM могут быть мигрированы между различными операционными системами. То есть его можно скопировать напрямую с Windows на Linux.
Модифицировать тип движка таблицы:
ALTER TABLE Table Name ENGINE = MyISAM ;
MyISAM:,它是基于传统的ISAM类型,ISAM是Indexed Метод последовательного доступа Это стандартный способ хранения записей и файлов. По сравнению с другими движками хранения, MyISAM предлагает большинство инструментов для проверки и ремонта таблиц. Таблицы MyISAM можно сжимать и поддерживают полнотекстовый поиск. Они не являются транзакционно безопасными и не поддерживают внешние ключи. Если что-то откатывается, это вызывает неполный откат и не является атомарным. Если совершается большое количество казней TheSELECT, MyISAM — лучший выбор.
InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,
Для типов InnoDB, поддерживающих функции, основная причина влияния на скорость — это то, что по умолчанию включена настройка AUTOCOMMIT, и программа явно не вызывает BEGIN Запустите транзакцию, что приводит к автоматическому фиксации за каждую вставку, что серьёзно влияет на скорость. Вы можете вызвать Start до выполнения SQL, и несколько SQL образуют одно (даже если автокоммит срабатывает также можно включить), что значительно улучшит производительность.
1. Просмотр информации о таблице, включая тип используемого движка, кодировку символов, структуру таблицы и т.д
Используй эту команду
mysql> показать создать таблицу t1; --t1 — это название таблицы
2. Для переключения нетранзакционных таблиц на транзакции можно выполнить следующую команду (данные не теряются), таблицы innodb безопаснее, чем таблицы myisam: Изменить таблицу T1 type=innodb; --t1 — это название таблицы
3. Таблица innodb не может быть table_name с помощью команды таблицы ремонта и myisamchk -r Но можно использовать чековую таблицу t1 и mysqlcheck [OPTIONS] базы данных [таблицы]
4. В командную строку добавлены следующие параметры для запуска базы данных mysql, чтобы все недавно выпущенные таблицы данных mysql по умолчанию использовали транзакции ( Это влияет только на оператор create. ) --default-table-type=InnoDB
5. Временное изменение типа таблицы по умолчанию можно выполнить следующим образом: набор table_type=InnoDB;
MyISAM Преимущества: высокая скорость, меньшее место на диске; Использование базы данных или таблицы на диске можно определить либо проверяя размер соответствующего файла (папки) операционной системой, либо используя SQL-команду SHOW TABLE STATUS Минусы: отсутствует механизм целостности данных, то есть нет поддержки транзакций и внешних ключей
InnoDB Преимущества: поддержка транзакций и внешних ключей, а также полный механизм целостности данных. Вы можете использовать СТАТУС ПОКАЗАТЬ ТАБЛИЦУ для проверки заполнения диска в библиотеке или таблице Недостатки: сверхнизкая скорость, большое место на диске; Все библиотеки хранятся в одном (обычно) или нескольких файлах, и операционная система не может определить, сколько места занимает библиотека или таблица
BDB Преимущества: поддерживают транзакции, не поддерживают внешние ключи, поскольку на основе поддержки транзакций внешние ключи могут быть реализованы косвенно на стороне клиента базы данных (которая может быть серверной стороной конечного клиента, например, PHP), поэтому целостность данных всё ещё гарантирована; Недостатки: низкая скорость, высокая нагрузка на диск; Нельзя запросить заполненность пространства базы данных или таблицы через СТАТУС ПОКАЗАТЬ ТАБЛИЦУ. Операционная система может понять размер соответствующей папки библиотеки или соответствующего файла таблицы, но поскольку таблица BDB всегда должна генерировать файл журнала, а фактическое занятие диска должно включать файл журнала, размер библиотеки или таблицы всегда меньше фактического пространства, занимаемого операционной системой.
|