Нюансы PostgreSQL

Aug 23, 2015 19:06

1. Чтобы при добавлении нового столбца не блокировалась вся таблица - надо не устанавливать DEFAULT или устанавливать DEFAULT NULL
2. Чтобы создание нового индекса не блокировало таблицу - надо использовать CREATE INDEX CONCURRENTLY (ну очень сильно увеличивает время создания индекса)
3. Обратить внимание на служебную табличку pg_stat_activity Подробности из дока
select now() - query_start AS idle, pid, waiting, query from pg_stat_activity where state != 'idle' order by 1 desc;
Список "зависших" запросов.
4. А вообще добавить логгирование медленных (например дольше 2 секунд) запросов к базе: в posgresql.conf прописать log_min_duration_statement = 2000 и перечитать конфиг
5. Чтобы перечитать конфиг: SELECT pg_reload_conf(); или в консоли pg_ctl reload
6. Чтобы понять что кубатурит с базой тот или иной процесс (в терминах ОС): использовать в консоли strace -p НОМЕР_ПРОЦЕССА -s 1024 -T 2> out
7. Взять на заметку http://dalibo.github.io/pgbadger/ и http://pgcluu.darold.net/

postgresql, узелки

Previous post Next post
Up