Начало работы
Подключение
Тесты производительности
Развёртывание
Использование данных
Загрузка данных
Миграция данных
Запрос данных
Управление кластерами
Обновление
Глобальное обслуживание
Масштабирование
Мониторинг
Безопасность
Лучшие практики
Технические принципы
Типы данных
Хранилище
Исполняющий движок
Потоковая обработка (Domino)
MARS3 Индексы
Расширения
Расширенные функции
Расширенный запрос
Федеративные запросы
Grafana
Резервное копирование и восстановление
Аварийное восстановление
Графовая база данных
Введение
Предложения
Функции
Расширенные темы
Руководство
Настройка производительности
Устранение неполадок
Инструменты
Параметры конфигурации
SQL-команда
Часто задаваемые вопросы
Для удовлетворения разнообразных требований к рабочим нагрузкам YMatrix поддерживает три режима записи. Активный режим определяется параметрами уровня таблицы prefer_load_mode и rowstore_size. Режимом по умолчанию является Normal.

В режиме Single данные накапливаются в локальной памяти до достижения максимального размера 1 МБ, после чего напрямую вставляются в хранилище строк (rowstore). Этот процесс аналогичен традиционной вставке в кучу (Heap) PostgreSQL. Данные находятся непосредственно в Shared Buffers, размер которых контролируется параметром shared_buffers. В режиме Single рекомендуется увеличить этот параметр, чтобы избежать свопа памяти.

Преимущества:
Недостатки:
\dt+) может быть завышен. Для решения этой проблемы перед проверкой можно вручную выполнить команды VACUUM или VACUUM FULL.В режиме Bulk данные копируются в локальную память до достижения лимита rowstore_size. Как только этот порог достигнут, данные немедленно преобразуются в формат columnstore и сбрасываются на диск. По завершении операции вставки любые оставшиеся данные в локальной памяти (даже если их объем меньше rowstore_size) также преобразуются в columnstore и сбрасываются на диск.
Преимущества:
Недостатки:
Режим Normal представляет собой интеллектуальную стратегию вставки. Данные копируются в локальную память.
rowstore_size, данные немедленно преобразуются в columnstore и сбрасываются на диск.rowstore_size / 2, они записываются в текущий rowstore.Это режим по умолчанию.
pgbench -n -f single_insert.sql -c 1 -j 1 -t 100000 test| Тип теста | Транзакций на клиент | Клиентов | Потоков | Средняя задержка (мс) | TPS (с учетом подключения) | TPS (без учета подключения) |
|---|---|---|---|---|---|---|
| single_insert.sql | 100,000 | 1 | 1 | 1.98 | 505.03 | 505.06 |
| bulk_insert.sql | 100,000 | 1 | 1 | 15.282 | 65.44 | 65.44 |
| normal_insert.sql | 100,000 | 1 | 1 | 1.968 | 508.02 | 508.05 |
time for i in {1..2000}; do psql test -f batch_insert.sql; done| Режим | Общая длительность | Всего секунд (с) | Строк в секунду (строк/с) |
|---|---|---|---|
| single | 2м27с | 147 | ≈ 680 |
| normal | 2м28с | 148 | ≈ 676 |
| bulk | 4м55с | 295 | ≈ 339 |
COPY в таблицы, настроенные на разные режимы.| Режим | Строк | Длительность (секунды) |
|---|---|---|
| bulk | 50,000,000 | 69.287 |
| single | 50,000,000 | 50.868 |
| normal | 50,000,000 | 70.612 |
| Имя таблицы | Коэффициент сжатия | Экономия места |
|---|---|---|
| fi_voucher | 7:1 | 86% |
| fi_voucher_b | 15:1 | 93% |
| aai_voucher | 4.5:1 | 78% |
| aai_voucher_record | 8.9:1 | 89% |
В реальном сценарии при вставке одинаковых объемов данных скорость генерации WAL остается постоянной во всех режимах. Однако общий объем сгенерированного WAL составляет примерно 1/3 от объема, создаваемого стандартными таблицами Heap. Это значительно сокращает дисковое пространство, занимаемое файлами WAL.

Вернуться к предыдущему разделу: Принципы движка хранения