Начало работы
Подключение
Тесты производительности
Развёртывание
Использование данных
Загрузка данных
Миграция данных
Запрос данных
Управление кластерами
Обновление
Глобальное обслуживание
Масштабирование
Мониторинг
Безопасность
Лучшие практики
Технические принципы
Типы данных
Хранилище
Исполняющий движок
Потоковая обработка (Domino)
MARS3 Индексы
Расширения
Расширенные функции
Расширенный запрос
Федеративные запросы
Grafana
Резервное копирование и восстановление
Аварийное восстановление
Руководство
Настройка производительности
Устранение неполадок
Инструменты
Параметры конфигурации
SQL-команда
Часто задаваемые вопросы
mars3_default_brin — это ключевая функция движка хранения MARS3. Она обеспечивает поддержку BRIN-индексов по умолчанию на уровне таблицы, позволяя автоматически фильтровать данные во время последовательных сканирований (SeqScan) без необходимости ручного создания индексов.
Чтобы включить mars3_default_brin, укажите параметр default_brinkeys при создании таблицы:
CREATE TABLE t
(c1 BIGINT, c2 BIGINT, c3 BIGINT)
USING mars3
WITH (mars3options='default_brinkeys=30');
Этот параметр принимает целочисленное значение (по умолчанию — 30):
0: отключает автоматическое создание BRIN-индексов.-1: автоматически создаёт BRIN-индексы по умолчанию для всех столбцов, поддерживающих операторы <, > и =.N: автоматически создаёт BRIN-индексы по умолчанию для первых N столбцов, поддерживающих операторы <, >, и =.Для проверки, какие столбцы таблицы имеют BRIN-ключи, используйте функцию mars3_brinkeys.
t с использованием движка хранения MARS3 и тремя столбцами типа BIGINT: c1, c2 и c3. Установите default_brinkeys=2, чтобы автоматически создать BRIN-индексы для первых двух столбцов.CREATE TABLE t
(c1 BIGINT, c2 BIGINT, c3 BIGINT)
USING mars3
WITH (mars3options='default_brinkeys=2');
t. Используйте функцию generate_series, чтобы сгенерировать значения от 1 до 1 000 000 и вставить их как строки.INSERT INTO t SELECT i,i,i FROM generate_series(1,1000000) AS i;
VACUUM для таблицы t. Для таблиц MARS3 это перемещает данные из строкового хранилища в колоночный слой и строит внутренние BRIN-структуры.VACUUM t;
t, где c1 < 1000.default_brinkeys=2, столбец c1 (один из первых двух) автоматически получил BRIN-индекс mars3_default_brin. Запрос использует этот индекс для ускорения выполнения.SELECT COUNT(*) FROM t WHERE c1 < 1000;
t, где c3 < 1000.default_brinkeys=2, столбец c3 (третий по счёту) не получил автоматический BRIN-индекс. Этот запрос, вероятно, не сможет использовать индекс и будет выполняться медленнее предыдущего.SELECT COUNT(*) FROM t WHERE c3 < 1000;
mars3_brinmars3_brin |
mars3_default_brin |
|
|---|---|---|
| Создание | Требует ручного выполнения CREATE INDEX |
Создаётся автоматически; ручные действия не нужны |
| Поддержка сканирования | Фильтрует данные только при IndexScan | Фильтрует данные как при IndexScan, так и при SeqScan |
| Версия технологии | BRIN v2 | BRIN v2 |
| Параметризованные запросы | Поддерживает параметризованный IndexScan | Поддерживает параметризованный SeqScan |