Add a new column (safe)
This operation will not block table
Почти все формы alter table берут эксклюзивную блокировку на таблицу. Да, порой на короткое время - но хотят взять. И будет очень больно, если блокировку взять не сможет быстро - alter table будет ждать мешающую транзакцию, но уже заблокирует все другие транзакции к этой таблице. Поэтому автор сильно вводит в заблуждение, называя эти операции безопасными. https://github.com/postgres/postgres/blob/REL_10_S...
Вячеслав Успенский, зависит от.
Во первых, не поможет (радикально), если это всё так же 10млн транзакций, а не одна. (с оговоркой вокруг синхронного коммита)
А зависит в первую очередь от дисков. На внятных SSD вы куда раньше упрётесь в одно ядро CPU, даже на обработке одного COPY, а не потока insert'ов, чем в IO.
Если SSD хреновые - то да, отдельная железка под WAL даст некоторый профит. Впрочем, на хреновых SSD (хинт: это могут быть дорогие серверные, но read-optimised и потому крайне хреновые с точки зрения базы) у вас и так будут приключения с базой. Выселить WAL отдельно может иметь смысл хотя бы для более-менее равномерной латентности отклика на запись. Но на хреновых дисках всё равно печально будет в целом, рано или поздно писать грязные страницы вам всё равно придётся. Поэтому лучше сразу переезжать на нормальные диски.
Если база на механике - значит вам в принципе не важна её производительность. Отдельно WAL естественно эффект дадут, но вам всё равно не важна производительность этой базы.
Если говорить о настройках:
выключить синхронный коммит по крайней мере для этого импорта данных, глобально нормально настроить checkpointer (куда менее часто делать чекпойнты: часовой таймаут, max_wal_size выбрать под своё железо) и bgwriter (более агрессивно).
Ставили не так давно железку у хетцнера, шестёрка Micron_5100_MTFD как раз досталась. Под контроллером в два раза хуже были чем под софтовым mdadm + blk_mq. Модель контроллера только по хистори не вижу.
Латентность на записи у этих SSD конечно выше чем у хороших intel, но жить в том числе базе можно.
Ну и 1000мбайт/с чего именно? Меряете ли вы производительность сообразно планируемому workload?
Сначала пишете любой select с любой обработкой какую придумаете - штатных функций для одних только строк много: https://www.postgresql.org/docs/current/functions-...
Затем дописываете перед полученным запросом insert into - и результат этого запроса будет записан куда скажете (ну или ошибку даст).
Chernichko, я просил отдельно select version(), а у вас ещё f какой-то виден.
Впрочем, приветствие psql однозначно отвечает, что сервер представляется как 9.3.24. И я знаю только один вариант, когда это приветствие может быть неверно - но для этого подключение должно быть через pgbouncer. Не тот случай.
Я могла ее недоустановить?
Нет.
возможно ли такое, что postgres -V показывает 9.6, а все обращается к 9.3?
Разумеется.
У меня локально одновременно установлены 9 релизов, от 9.1 до HEAD версии. При том даже ни одного postgres в PATH
Если под "обновила до 9.6" подразумевалась только установка бинарников - то этого недостаточно. Саму базу необходимо после этого обновлять, dump+restore либо pg_upgrade. Либо какие-то обвязки вокруг них.
Биндить каждое значение в списке по отдельности. where id in (?,?) и передавать два параметра. Для общего случая, соответственно, генерировать нужное число placeholders.
Олег Петров, толпа систем с разными ОС, компиляторами, аппаратными архитектурам, на которых выполняется компиляция проекта и прогоняются автоматические тесты. Практически на каждый коммит в репозиторий.
В целом - https://en.wikipedia.org/wiki/Compile_farm
По специфике windows ничего подсказать не могу. collation и character type именно зависят от ОС. 1252 впрочем не очень похожи на utf8, а скорее на CP1252
tar лишён смысла. Нет никаких плюсов его использования и даже есть минусы вроде создания временного файла, но это просто недостаточная причина сама по себе для удаления его поддержки.
custom или directory для дампов лучше. С обоих можно восстанавливать выборочно объекты и даже параллельно, directory и снимать можно параллельно. Оба штатно сжимаются.
plaintext - я его уважаю потому что уж из текста данные достать можно будет хоть текстовым редактором. Но в остальном неудобен.
must be owner of extension plpgsql
Да, это потому что за свой огромный ценник RDS ещё и не даёт нормального super.
Комментарий этот к extension бесполезен, даже если вы используете pl/pgsql. Поэтому если это единственная ошибка - то всё ок.