25.2.6.1 Различия между хранилищами данных NDB и InnoDB
Хранилище данных NDB реализовано с использованием распределенной архитектуры «shared-nothing», что приводит к поведению, отличающемуся от InnoDB в ряде аспектов. Для пользователей, не знакомых с работой с NDB, могут возникнуть непредвиденные проблемы из-за его распределённой природы по отношению к транзакциям, внешним ключам, ограничениям таблиц и другим характеристикам. Эти отличия представлены в следующей таблице:
Таблица 25.1 Различия между хранилищами InnoDB и NDB
| Функция |
InnoDB (MySQL 9.2) |
NDB 9.2 |
|---|---|---|
| Версия сервера MySQL | 9.2 | 9.2 |
InnoDB Версия |
InnoDB 9.2.0 |
InnoDB 9.2.0 |
| Версия NDB Cluster | N/A |
NDB 9.2.0/9.2.0 |
| Ограничения хранилища | 64 ТБ | 128 ТБ |
| Внешние ключи | Да | Да |
| Транзакции | Все стандартные типы | READ COMMITTED |
| MVCC | Да | Нет |
| Сжатие данных | Да | Нет (файлы контрольных точек NDB и резервных копий могут быть сжаты) |
| Поддержка больших строк (> 14К) | Поддерживается для VARBINARY, VARCHAR, BLOB и TEXT столбцов | Поддерживается только для BLOB и TEXT столбцов (использование этих типов для хранения очень больших объемов данных может снизить производительность NDB) |
| Поддержка репликации | Асинхронная и полусинхронная репликация с помощью репликации MySQL; MySQL Групповая репликация | Автоматическая синхронная репликация в рамках NDB Cluster; асинхронная репликация между NDB Clusters с использованием репликации MySQL (полусинхронная репликация не поддерживается) |
| Масштабирование для операций чтения | Да (репликация MySQL) | Да (автоматическое разбиение в NDB Cluster; репликация NDB Cluster) |
| Масштабирование для операций записи | Требует разбиение на уровне приложения (фрагментация) | Да (автоматическое разбиение в NDB Cluster прозрачно для приложений) |
| Высокая доступность (HA) | Встроенная, из кластера InnoDB | Да (разработан для 99,999% времени безотказной работы) |
| Восстановление от сбоя узла и failover | Из MySQL Group Replication | Автоматическое (ключевой элемент в архитектуре NDB) |
| Время восстановления после сбоя узла | 30 секунд или больше | Обычно < 1 секунды |
| Производительность в реальном времени | Нет | Да |
| Временные таблицы | Нет | Да (некоторые данные могут быть опционально сохранены на диске; хранение данных в памяти и на диске является устойчивым) |
| Доступ к хранилищу с использованием NoSQL | Да | Да (множество API, включая Memcached, Java, JPA, C++, HTTP/REST)[a] |
| Одновременные и параллельные записи | Да | До 48 записей, оптимизированные для одновременных записей |
| Обнаружение и разрешение конфликтов (несколько источников) | Да (MySQL Group Replication) | Да |
| Хеш-индексы | Нет | Да |
| Онлайн добавление узлов | Читающие/записывающие реплики с использованием MySQL Group Replication | Да (все типы узлов) |
| Онлайн апгрейды | Да (с использованием репликации) | Да |
| Онлайн изменения схемы | Да, как часть MySQL 9.2 | Да |
[a] Node.js был устаревшим в NDB 9.0 и был удалён в NDB 9.1.
© 2025 Oracle
Licensed under the GPLv2 License.