
Однако начиная со следующего релиза PostgreSQL 12 больше recovery.conf работать не будет: я его сломал.
Но зачем?
Свободная объектно-реляционная СУБД
SELECT hour(datetime), somename, count(*), sum(somemetric)
from table
where datetime > :monthAgo
group by 1, 2
order by 1 desc, 2
Windows
и macOS
, а также для Python Wheel
, Docker
-контейнеры и тарболы с исходниками можно скачать отсюда. RPM
ы и DEB
ы должны появиться в репозиториях postgresql.org
в ближайшие дни.<source>
, который подсвечивает синтаксис. Не секрет также, что подсветка не всегда получается идеальной, и тогда авторы (которым не все равно, как выглядят их статьи) вынуждены заниматься самодеятельностью — расцвечивать свой код с помощью <font color=...>
.list
, например, может включать в себя не только данные разных типов, но и функции (вообще, язык эклектичный, и говорить о принадлежности его к определенному семейству не будем, чтобы не порождать отвлекающие дискуссии). В нем есть симпатичный тип данных data.frame
, который подражает таблице РСУБД — это матрица, у которой столбцы содержат разные типы данных, общие на уровне столбца. Поэтому (и по другим причинам) работать в R с базами данных довольно удобно.(partition pruning)
во время исполнения запросов SELECT;Привет, Хабр!
Хочу поделиться опытом написания миграций для postgres и django. Речь в основном пойдёт про postgres, django же здесь хорошо дополняет, так как из коробки имеет автоматическую миграцию схемы данных по изменениям модельки, то есть имеет довольно полный список рабочих операций по изменению схемы. Django можно заменить на любой любимый фрэймворк/библиотеку — подходы скорее всего будут похожи.
Не буду описывать как я к этому пришёл, но сейчас читая документацию ловлю на мысли, что нужно было с большей внимательностью и осознанием делать это раньше, поэтому очень рекомендую.
Перед тем как пойти дальше позволю себе сделать следующие предположения.
Можно разделить логику работы с базой данных большинства приложений на 3 части:
Даунтайм — это состояние, когда часть нашей бизнес логики не доступна/падает/грузится на заметное для пользователя время, предположим это пару секунд.
Отсутствие даунтайма может быть критическим для бизнеса условием, которого любыми усилиями нужно придерживаться.
JIT
-компиляция.constraint
-ах должны быть уникальны.pgbench
:pgbench
теперь поддерживает составные команды;--latency-limit
теперь можно ограничить время, отведённое на повторение транзакций. Если при использовании данного параметра значение --max-tries=0
, транзакции могут повторяться неограниченное число раз, пока не истечёт время, заданное параметром --latency-limit
;15 сентября в Авито прошёл митап, на котором мы говорили о масштабировании приложений на PostgreSQL. Сегодня я хочу поделиться материалами с него — видеозаписями, презентациями от докладчиков, показать фото. Также под катом публикую разбор вопросов викторины, которую мы проводили здесь, на Хабре, перед митапом. И рассказываю о своих впечатлениях от встречи.