Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Зеркалирование
Управление ресурсами
Безопасность
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Потоковая передача
Восстановление после сбоев
Конфигурация
Индексы
Расширения
Справочник по SQL
Часто задаваемые вопросы
Движок хранения является фундаментальным слоем хранения базы данных. На основе движка хранения базы данных выполняют операции создания, запроса, обновления и удаления данных. В зависимости от ваших требований различные движки хранения предоставляют разные механизмы хранения и могут комбинироваться с различными движками выполнения для формирования специализированных микроядер баз данных для конкретных сценариев.
В настоящее время система баз данных YMatrix поддерживает следующие движки хранения:
| Движок хранения | Описание |
|---|---|
| HEAP | Движок хранения, предоставляемый PostgreSQL, также известный как heap-таблицы, использует строковое хранение. Такие таблицы поддерживают высококонкурентные операции чтения/записи, транзакции, индексы и другие функции. |
| AO | Движок хранения, предоставляемый Greenplum, также известный как Append-Optimized (AO) таблицы, использует формат, оптимизированный для добавления, что обеспечивает преимущества в производительности при массовой загрузке и чтении данных по сравнению с таблицами HEAP. Хранение, оптимизированное для добавления, предоставляет контрольные суммы для защиты данных, сжатие и поддержку как строкового, так и столбцового форматов. Как строковые, так и столбцовые AO-таблицы поддерживают сжатие. |
| MARS2 | Движок хранения, разработанный поверх MARS. За счет использования физически упорядоченного слияния он снижает операции поиска ввода-вывода и повышает производительность запросов. MARS2 поддерживает сжатие, столбцовое хранение, автоматическое архивирование, предварительную агрегацию и другие функции, обеспечивая отличную производительность в сценариях временных рядов. Для сжатия MARS2 предлагает настраиваемое решение: Encoding Chain (mxcustom). Включение цепочки кодирования позволяет осуществлять детализированное, целенаправленное и глубокое сжатие. Таблицы MARS2 не поддерживают обновление и удаление данных. |
| MARS3 | Движок хранения, построенный на основе MARS2. Он наследует преимущества MARS2 в работе с нагрузками временных рядов и расширяет поддержку до сценариев AP и TP. Помимо наследования ключевых функций MARS2 — таких как сжатие Encoding Chain и столбцовое хранение — MARS3 оптимизирует производительность записи, чтобы эффективно обрабатывать разнообразные шаблоны записи (например, высокочастотные небольшие пакетные TP-нагрузки и низкочастотные крупные пакетные AP-нагрузки). MARS3 поддерживает стандартные операции обновления и удаления данных, MVCC, добавление/удаление столбцов и BRIN-индексы. |
В следующей таблице сравниваются основные функции MARS2 и MARS3:
| Функция | MARS2 | MARS3 |
|---|---|---|
| Формат хранения | Столбцовый | Гибридный строково-столбцовый или столбцовый |
| Сжатие | Поддерживает Encoding Chain | Поддерживает Encoding Chain |
Обновление и удаление данных через UPDATE и DELETE |
Не поддерживается | Поддерживается |
| Добавление/удаление столбцов | Не поддерживается | Поддерживается |
| MVCC | Не поддерживается | Поддерживается |
| Runtimefilter | Поддерживается | Не поддерживается |
| Диагностика хранения | Поддерживается | Не поддерживается |
| Пакетное слияние данных (UPSERT) | Поддерживается | Поддерживается |
| Синтаксис INSERT INTO ... VALUES ... ON CONFLICT ... DO UPDATE | Не поддерживается | Не поддерживается |
| Индексы | При создании таблицы необходимо создать один индекс mars2_btree, указывающий ключ сортировки; в противном случае таблица недопустима (функционально эквивалентно предложению ORDER BY в таблицах MARS3) |
Можно необязательно создать один или несколько индексов mars3_brin для повышения эффективности запросов (функционально аналогично minmax-индексам в таблицах MARS2) |
| Конфигурация параметров таблицы | WITH(a=1,b=2,...) |
WITH(mars3options='a=1,b=2,...') |