Size: a a a

pgsql – PostgreSQL

2021 June 17

AA

Aleksander Alekseev in pgsql – PostgreSQL
можно
источник

ЯК

Ярослав Коробейников... in pgsql – PostgreSQL
Ку всем.
Есть ли какой-то инструмент чтобы проверить насколько "ухудшилась" вставка записей в таблицу при разных индексах (одиночном на одно поле, одиночном на несколько полей, составным на несколько полей)
А то как бы выборка естественно видно как ускоряется, но хотелось бы знать и как при этом страдает запись....
источник

dd

dgj dfsh in pgsql – PostgreSQL
👍да, нашел докер-образ
источник

ЯК

Ярослав Коробейников... in pgsql – PostgreSQL
Или где можно почитать про какие индексы каким образом ухудшают вставку и обновление данных?

У меня сейчас условно выбор между составным индексом на три поля который ускоряет мой селект с ~30 сек до 7 милисекунд
(таблица ~380миллионов записей)
Или одним обычным индексом на одно поле при котором тот же запрос отработает за 20ms, что тоже как бы очень неплохо! И я вот хочу в выводе аргументировать почему стоит выбрать индекс на одно поле всё-таки и получать записи за 20ms, и разница в 13 милисекунд не стоит составного индекса на три поля.
источник

ЯК

Ярослав Коробейников... in pgsql – PostgreSQL
Я почему-то считаю что лучше один индекс на одно поле и получать записи за 20ms чем иметь один составной индекс на три поля и получать записи за 7ms, но не могу понять почему я так считаю и лучше ли это вообще
источник

кн

коля николай... in pgsql – PostgreSQL
ну так сделайте индекс на 3 поля. Посмотрите на сколько дольше будет проходить вставка, на сколько места больше займет, и определитесь)
источник

ЯК

Ярослав Коробейников... in pgsql – PostgreSQL
Вот я и спрашиваю есть какие-то уже инструменты для подсчёта времени вставки? Или как бы тупо сиди руками вставляй и мерь?)
источник

кн

коля николай... in pgsql – PostgreSQL
pg_stat_statements
источник

ac

alex che in pgsql – PostgreSQL
Имхо, скорость вставки/апдейта BTree мало зависит от длины кортежа. Ну то есть не пропорционально объёму индекса, а меньше. Поэтому я бы смотрел только на увеличение объёма и на количество индексов
P.S. Понятно, что увеличение объёма влечёт и увеличение времени, т.к. обращением к большему числу страниц, но тут пострадает не только вставка в индекс, но равномерно всё
источник

IA

Ilya Anfimov in pgsql – PostgreSQL
Если хочешь тренировать Путь Воина по Кастанеде — то можно попробовать устроиться, возможно, что там ты найдёшь своего мелюзгового тиранчика.

Если у тебя другие цэли — то лучшэ отказаться, сообразно правилу "не надо работать с мудаками".
источник

NP

Nikolay Popov in pgsql – PostgreSQL
источник

НД

Николай Двойнишников... in pgsql – PostgreSQL
добрый день!
не смог нагуглить, в чем разница между тремя следующими сущностями:
postgresql-12-setup initdb
/usr/pgsql-12/bin/initdb
/usr/pgsql-12/bin/pg_ctl init
помогите, подскажите, пожалуйста
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
> /usr/pgsql-12/bin/initdb
бинарник из коробки постгреса у которого в задачу входит только инициализация кластера

> /usr/pgsql-12/bin/pg_ctl
бинарник из коробки постгреса с множеством управляющих функций (одна из которых - инициализация)

> postgresql-12-setup
емнип просто скрипт из пакетов rhel/centos который под капотом использует вышеупомянутй initdb

бинарники и скрипт отличаются разным набором функциональности, но указанные команды по инициализации не отличаются - результат у всех трех будет одинаков (без учета входных параметров, типа encoding, locale и т.п.)
источник

НД

Николай Двойнишников... in pgsql – PostgreSQL
спасибо!
источник

AN

Alexander Nikitin in pgsql – PostgreSQL
Там могут быть нюансы. Если в центос производить установку так как описано на сайте, то в Pg_hba.conf будут адекватные значения, если через initdb то будут trust
источник

I

Ins in pgsql – PostgreSQL
разница в том, что initdb нельзя выполнять под пользователем root, поэтому считается правилом хорошего тона выполнять его под пользователем postgres, а вот postgresql-12-setup можно выполнить непосредственно под root. Но как уже сказали ранее, под какпотом выполняется Initdb.
источник

I

Ins in pgsql – PostgreSQL
# /usr/pgsql-13/bin/initdb -D /var/lib/pgsql/13/data
источник

I

Ins in pgsql – PostgreSQL
initdb: error: cannot be run as root
источник

I

Ins in pgsql – PostgreSQL
# /usr/pgsql-13/bin/postgresql-13-setup initdb
источник

I

Ins in pgsql – PostgreSQL
ещё один интересный момент, это в чём отличие между
pg_ctlcluster
и
pg_ctl
источник