Принимать сложные параметры запроса в виде JSON - полезно, хранить его в базе - удобно, но работа с ним в рамках SQL-запроса зачастую вызывает затруднения.Сегодня столкнулся с очередным нетипичным вариантом использования - "перекладыванием" значений из JSON-строк в столбцы.Давайте сделаем это попроще. Читать далее
В PostgreSQL есть "волшебный" тип индекса GiST, который позволяет быстро искать разные сложные вещи - от интервалов до массивов и даже реализовывать полнотекстовый поиск.Про его внутреннее устройство и возможности подробно рассказывал Егор Рогов, а я в статье "PostgreSQL Antipatterns: работаем с…
Статья на Хабре "PostgreSQL Antipatterns: отказ от агрегатных функций = кратное ускорение" послужила отправной точкой для данного исследования. После ее изучения возникла гипотеза о возможности значительного повышения производительности PostgreSQL через замену агрегатных функций на конструкции ARRAY. Читать далее
Недавно попался на глаза примерно такой кусок запроса, и тут прекрасно примерно все:• множество чтений из CTE (хоть и единственной записи, но все же);• извлечение по каждому ключу текста с раскастовкой в jsonb;• извлечение каждого отдельного json-ключа в каждое отдельное одноименное поле;• "ручное" преобразование текстового представления массива в json в текстовое представление PostgreSQL.А как - правильно? Читать далее