Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Зеркалирование
Управление ресурсами
Безопасность
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Потоковая передача
Восстановление после сбоев
Конфигурация
Индексы
Расширения
Справочник по 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 |