17.1 Введение в InnoDB
InnoDB — это универсальный движок хранения, который балансирует высокую надёжность и высокую производительность. В MySQL 8.4, InnoDB является по умолчанию движком хранения MySQL. Если вы не настроили другой движок по умолчанию, выполнение команды CREATE
TABLE без указания ENGINE создаст таблицу InnoDB.
Ключевые преимущества InnoDB
Его операции DML следуют модели ACID, с транзакциями, включающими подтверждение, откат и восстановление после сбоя, для защиты данных пользователя. См. Раздел 17.2, «InnoDB и модель ACID».
Блокировка на уровне строк и согласованные чтения в стиле Oracle повышают конвейерность и производительность при одновременной работе нескольких пользователей. См. Раздел 17.7, «Блокировка и модель транзакций InnoDB».
Таблицы
InnoDBорганизуют данные на диске для оптимизации запросов на основе первичных ключей. Каждая таблицаInnoDBимеет индекс первичного ключа, называемый кластеризованным индексом, который организует данные для минимизации ввода-вывода при поиске по первичному ключу. См. Раздел 17.6.2.1, «Кластеризованные и вторичные индексы».Для поддержания целостности данных,
InnoDBподдерживаетFOREIGN KEYограничения. С помощью внешних ключей вставки, обновления и удаления проверяются, чтобы убедиться, что они не приводят к несоответствиям между связанными таблицами. См. Раздел 15.1.20.5, «Ограничения FOREIGN KEY».
Таблица 17.1 Функции движка хранения InnoDB
| Функция | Поддержка |
|---|---|
| Индексы B-дерева | Да |
| Резервное копирование/восстановление в определённый момент времени (Реализовано в сервере, а не в движке хранения.) | Да |
| Поддержка баз данных кластеров | Нет |
| Кластеризованные индексы | Да |
| Сжатие данных | Да |
| Кэши данных | Да |
| Шифрование данных | Да (Реализовано в сервере с помощью функций шифрования; в MySQL 5.7 и более поздних версиях поддерживается шифрование данных в состоянии покоя.) |
| Поддержка внешних ключей | Да |
| Индексы полнотекстового поиска | Да (Поддержка индексов FULLTEXT доступна в MySQL 5.6 и более поздних версиях.) |
| Поддержка геопространственных типов данных | Да |
| Поддержка геопространственных индексов | Да (Поддержка геопространственных индексов доступна в MySQL 5.7 и более поздних версиях.) |
| Индексы хеш-таблиц | Нет (InnoDB использует индексы хеш-таблиц внутри для функции Adaptive Hash Index.) |
| Кэши индексов | Да |
| Гранularity блокировки | Строка |
| MVCC | Да |
| Поддержка репликации (Реализовано в сервере, а не в движке хранения.) | Да |
| Пределы хранения | 64 ТБ |
| Индексы T-дерева | Нет |
| Транзакции | Да |
| Обновление статистики словаря данных | Да |
Для сравнения функций InnoDB с другими движками хранения, предоставляемыми MySQL, см. таблицу Функции движков хранения в Главе 18, Альтернативные движки хранения.
Улучшения и новые функции InnoDB
Для получения информации об улучшениях и новых функциях InnoDB, обратитесь к:
Списку улучшений
InnoDBв Разделе 1.4, «Что нового в MySQL 8.4 по сравнению с MySQL 8.0»..
Дополнительная информация и ресурсы по InnoDB
Для
InnoDB-связанных терминов и определений, см. .Для форума, посвященного движку хранения
InnoDB, см. MySQL Forums::InnoDB.InnoDBпубликуется под той же лицензией GNU GPL Version 2 (от июня 1991 года), что и MySQL. Для получения дополнительной информации о лицензировании MySQL, см. http://www.mysql.com/company/legal/licensing/.
© 2025 Oracle
Licensed under the GPLv2 License.