clusterdb
Перекластеризует таблицы, ранее кластеризованные с помощью CLUSTER.
Синтаксис
clusterdb [ <connection-option> ... ]
[ --verbose | -v ]
[ --table | -t <table> ]
[ [ --dbname | -d ] <dbname> ]
clusterdb [ <connection-option> ... ]
[ --all | -a ]
[ --verbose | -v ]
clusterdb -? | --help
clusterdb -V | --version
Описание
Кластеризация таблицы означает физическую реорганизацию данных на диске по индексу, чтобы операции сканирования индекса обращались к данным последовательно и повышалась производительность соответствующих запросов.
Утилита clusterdb находит таблицы в базе данных, ранее кластеризованные с помощью команды CLUSTER, и перекластеризует их по тому же индексу, который использовался в последний раз.
Таблицы, никогда не подвергавшиеся кластеризации, не затрагиваются.
clusterdb — это обертка для SQL-команды CLUSTER.
Хотя кластеризация таблицы таким способом поддерживается в Greengage DB, ее не рекомендуется использовать, так как операция CLUSTER очень медленная.
Если необходимо упорядочить таблицу для повышения производительности запросов, используйте CREATE TABLE AS для переупорядочивания данных на диске вместо CLUSTER.
При таком способе кластеризации использование clusterdb не требуется.
Параметры
- -a | --all
-
Кластеризует все базы данных.
- [-d] <dbname> | [--dbname=]<dbname>
-
Указывает имя базы данных для кластеризации. Если параметр не указан, имя базы данных берется из переменной окружения
PGDATABASE. Если переменная не установлена, используется имя пользователя, указанное при подключении. - -e | --echo
-
Выводит команды, которые
clusterdbформирует и отправляет на сервер. - -q | --quiet
-
Подавляет вывод сообщений.
- -t <table> | --table=<table>
-
Кластеризует только указанную таблицу. Для кластеризации нескольких таблиц можно указать несколько ключей
-t. - -v | --verbose
-
Выводит подробную информацию во время выполнения команды.
- -V | --version
-
Выводит версию
clusterdbи завершает работу. - -? | --help
-
Отображает справку по аргументам командной строки
clusterdbи завершает работу.
Параметры подключения
- -h <host> | --host=<host>
-
Имя хоста, на котором запущен экземпляр мастера. Если параметр не указан, читается из переменной окружения
PGHOSTили используется значение по умолчаниюlocalhost. - -p <port> | --port=<port>
-
TCP-порт, на котором мастер принимает подключения. Если параметр не указан, читается из переменной окружения
PGPORTили используется значение по умолчанию5432. - -U <username> | --username=<username>
-
Имя роли для подключения. Если параметр не указан, читается из переменной окружения
PGUSERили используется имя пользователя операционной системы. - -w | --no-password
-
Не запрашивает пароль. Если сервер требует пароль и он недоступен другими способами (например, через файл .pgpass), подключение завершится неудачей. Этот параметр удобен для пакетных заданий и скриптов, где невозможен интерактивный ввод пароля.
- -W | --password
-
Принудительно запрашивает пароль.
- --maintenance-db=<dbname>
-
Указывает базу данных для подключения, чтобы определить, какие другие базы данных следует кластеризовать. Если параметр не указан, используется база данных
postgres, а если она отсутствует —template1.
Примеры
Кластеризовать базу данных test:
$ clusterdb test
Кластеризовать таблицу foo в базе данных xyzzy:
$ clusterdb --table foo xyzzy