21.2.6.1 Отличия между движками хранилища NDB и InnoDB
Движок хранилища NDB реализован с использованием распределённой архитектуры shared-nothing, что приводит к поведению, отличающемуся от InnoDB по ряду аспектов. Для тех, кто не знаком с NDB, из-за его распределённой природы могут возникнуть неожиданные особенности в отношении транзакций, внешних ключей, ограничений таблиц и других характеристик. Они показаны в следующей таблице:
Таблица 21.1 Отличия между движками хранилища InnoDB и NDB
| Функция |
InnoDB (MySQL 5.7) |
NDB 7.5/7.6 |
|---|---|---|
| Версия сервера MySQL | 5.7 | 5.7 |
InnoDB Версия |
InnoDB 5.7.44 |
InnoDB 5.7.44 |
| Версия NDB Cluster | N/A |
NDB 7.5.36/7.6.34 |
| Ограничения хранилища | 64TB | 128TB (по состоянию на NDB 7.5.2) |
| Внешние ключи | Да | Да |
| Транзакции | Все стандартные типы | READ COMMITTED |
| MVCC | Да | Нет |
| Сжатие данных | Да | Нет (файлы контрольных точек и резервных копий NDB можно сжимать) |
| Поддержка больших строк (> 14К) | Поддерживается для VARBINARY, VARCHAR, BLOB и TEXT столбцов | Поддерживается только для BLOB и TEXT столбцов (Использование этих типов для хранения очень больших объёмов данных может снизить производительность NDB) |
| Поддержка репликации | Асинхронная и полусинхронная репликация с использованием репликации MySQL; MySQL Групповая репликация | Автоматическая синхронная репликация внутри NDB Cluster; асинхронная репликация между NDB Cluster, используя репликацию MySQL (полусинхронная репликация не поддерживается) |
| Масштабирование для операций чтения | Да (репликация MySQL) | Да (автоматическое распределение в NDB Cluster; репликация NDB Cluster) |
| Масштабирование для операций записи | Требует разбиения на уровне приложения (фрагментацию) | Да (автоматическое распределение в NDB Cluster прозрачно для приложений) |
| Высокая доступность (HA) | Встроенная, из InnoDB кластера | Да (разработан для 99.999% времени работы) |
| Восстановление узла при сбое и переход на резервный узел | От MySQL групповой репликации | Автоматическое (ключевой элемент в архитектуре NDB) |
| Время восстановления узла при сбое | 30 секунд или больше | Обычно < 1 секунды |
| Производительность в реальном времени | Нет | Да |
| Таблицы в оперативной памяти | Нет | Да (некоторые данные могут быть выборочно сохранены на диске; как данные в оперативной памяти, так и данные на диске сохраняются) |
| Доступ к движку хранилища с помощью NoSQL | Да | Да (несколько API, включая Memcached, Node.js/JavaScript, Java, JPA, C++, и HTTP/REST) |
| Конкурентные и параллельные записи | Да | До 48 записывателей, оптимизированных для одновременных записей |
| Обнаружение и разрешение конфликтов (несколько источников репликации) | Да (MySQL групповая репликация) | Да |
| Хеш-индексы | Нет | Да |
| Онлайн добавление узлов | Чтение/запись реплик с использованием MySQL групповой репликации | Да (все типы узлов) |
| Онлайн обновления | Да (с помощью репликации) | Да |
| Онлайн изменения схемы | Да, как часть MySQL 5.7 | Да |
© 2025 Oracle
Licensed under the GPLv2 License.