PostgreSQL. 10 продвинутых команд для DBA с примерами
Топ 10 самих популярных команд для управления сервером PostgreSQL для настоящих администраторов баз данных (DBA).
Большинство команд подходят как для консольной утилиты psql , так и для запуска через ваш клиент.
1. Как найти самую большую таблицу в базе данных PostgreSQL?
Результатом будет самая большая таблица (в примере testtable1 ) в страницах. Размер одной страницы равен 8KB (т.е. размер таблицы в примере — 2,3GB)
2. Как узнать размер всей базы данных PostgreSQL?
Результатом будет размер базы данных в байтах:
Если вы хотите получить размер в более читаемом («человеческом») формате — «оберните» результат в функцию pg_size_pretty() :
Ну и сразу логичным будет показать все базы данных в читаемом («человеческом») виде, отсортированные от более больших к меньшим
3. Как узнать размер таблицы в базе данных PostgreSQL?
Результатом будет размер таблицы testtable1, включая индексы. Результат будет отображен сразу в удобном для чтения формате, а не в байтах.
Если вам нужно узнать размер таблицы без индексов, тогда следует выполнить такой запрос:
4. Как узнать текущую версию сервера PostgreSQL?
Результат будет подобным этому:
5. Как выполнить SQL-файл в PostgreSQL?
Для данной цели существует специальная команда в консольной утилите:
Где /path/to/file.sql — это путь к вашему SQL-файлу. Обратите внимание, что он должен лежать в доступной для чтения пользователя postgres директории.
6. Как отобразить список всех баз данных сервера PostgreSQL?
Для данной цели существует специальная команда в консольной утилите:
7. Как отобразить список всех таблиц в базе данных PostgreSQL?
Для данной цели существует специальная команда в консольной утилите что покажет список таблиц в текущей БД.
8. Как показать структуру, индексы и прочие элементы выбранной таблицы в PostgreSQL?
Для данной цели существует специальная команда в консольной утилите:
Где testtable1 — имя таблицы
9. Как отобразить время выполнения запроса в консольной утилите PostgreSQL?
После чего все запросы станут отображаться в консольной утилите со временем выполнения.
Отключаются эти уведомления точно так же, как и включаются — вызовом:
10. Как отобразить все команды консольной утилиты PostgreSQL?
Это наверное самый важный пункт, т.к. любой DBA должен знать как вызвать эту справку
Показать таблицы в PostgreSQL
что эквивалентно show tables (из MySQL) в PostgreSQL?
18 ответов
С psql интерфейс командной строки, это показывает все таблицы в текущей схеме:
программно (или с psql интерфейс, конечно, тоже):
системные таблицы в базе данных pg_catalog.
войдите в систему как суперпользователь:
вы можете перечислить все базы данных и пользователей по \l command, (список других команд по \? ).
теперь, если вы хотите увидеть другие базы данных вы можете изменить пользователя/базы данных как \c template1 , \c postgres postgres и использовать \d , \dt или \dS чтобы увидеть таблицы / представления / etc.
(для полноты картины)
вы также можете запросить (SQL-standard) информация-схемы:
первый вход в систему как пользователь postgres:
sudo su — postgres
подключение к требуемой БД: psql -d databaseName
\dt возвращает список всех таблиц в базе данных, к которой вы подключены.
запуск psql с флагом-E будет повторять запрос, используемый внутри для реализации \ДТ и подобные:
если вы хотите увидеть только список таблиц, которые вы создали, вы можете только сказать:
но у нас есть PATTERN что поможет вам настроить, какие таблицы показывать. Чтобы показать все, включая pg_catalog схемы, вы можете добавить * .
вы можете использовать интерактивный терминал psql PostgreSQL для отображения таблиц в PostgreSQL.
1. Запустить Psql
обычно вы можете запустить следующую команду для входа в psql:
например, psql template1 postgres
одна из возможных ситуаций: предположим, вы входите в систему как root, и вы не помните имя базы данных. Вы можете просто ввести сначала в Psql, запустив:
в некоторых системах, sudo команда недоступна, вместо этого вы можете запустить любую команду ниже:
2. Показать таблицы
теперь в Psql вы можете запускать такие команды, как:
- \? список всех команд
- \l базы данных
- \conninfo отображение информации о текущем соединении
- \c [DBNAME] подключиться к новой базе данных, например, \c template1
- \dt список таблицы
- \q выход из psql
сначала подключитесь к базе данных, используя следующую команду
и вы увидите это сообщение, Теперь вы подключены к database database_name и выполните следующую команду
в database_name и table_name просто обновите свою базу данных и имя таблицы
используйте только таблицы
Если хотите увидеть таблицы схемы
Если вы хотите увидеть конкретные таблицы-схемы
Если вы используете Pgadmin4 в PostgreSQL, вы можете использовать это, чтобы показать таблицы в вашей базе данных:
отметим, что список таблиц общественные схема базы данных, которую вы используете. Мне нравится держать свои таблицы в отдельных схемах, поэтому принятый ответ не сработал для меня.
перечислить все таблицы в рамках определенной схемы мне нужно:
1) Подключение к нужной базе данных:
2) Укажите имя схемы, для которой я хочу видеть таблицы после , как это:
Это показывает мне результаты, которые меня интересуют:
\dt (no * required) — перечислит все таблицы для существующей базы данных, к которой вы уже подключены. Также полезно отметить:
\d [table_name] — покажет все столбцы для данной таблицы, включая информацию о типе, ссылки и ключевые ограничения.
вы можете перечислить таблицы в текущей базе данных с помощью \dt .
чистки рядов, \d tablename покажет подробную информацию о данной таблице, что-то вроде show columns from tablename в MySQL, но с немного большей информацией.
List all tables in postgresql information_schema
What is the best way to list all of the tables within PostgreSQL’s information_schema?
To clarify: I am working with an empty DB (I have not added any of my own tables), but I want to see every table in the information_schema structure.
![]()
8 Answers 8
You should be able to just run select * from information_schema.tables to get a listing of every table being managed by Postgres for a particular database.
You can also add a where table_schema = ‘information_schema’ to see just the tables in the information schema.
For listing your tables use:
It will only list tables that you create.
from within psql, should be fine.
The «\z» COMMAND is also a good way to list tables when inside the interactive psql session.
1.get all tables and views from information_schema.tables, include those of information_schema and pg_catalog.
2.get tables and views belong certain schema
3.get tables only(almost \dt)
You may use also
In generall pg* tables allow you to see everything in the db, not constrained to your permissions (if you have access to the tables of course).
For private schema ‘xxx’ in postgresql :
Without table_type = ‘BASE TABLE’ , you will list tables and views
![]()
If you want a quick and dirty one-liner query:
select * from information_schema.tables
You can run it directly in the Query tool without having to open psql.
(Other posts suggest nice more specific information_schema queries but as a newby, I am finding this one-liner query helps me get to grips with the table)