У нас есть сервис, который собирает продавцам XML-фид для автозагрузки Авито. В воскресенье 27 сентября я выкатил миграцию данных. По моему расчёту она ставила новый признак ровно одному объявлению. После выкатки признак стоял у 321. Вреда не случилось, потому что я пересчитал помеченные строки раньше, чем фид успел пересобраться. Ниже код, запросы и мой главный промах: условие я считал в голове, а на проде не прогнал ни разу.
Рубрика «jsonb»
Бэкфилл должен был пометить одну строку, а пометил 321. Разбор миграции, которую пропустил зелёный тест
2026-09-30 в 13:49, admin, рубрики: alembic, jsonb, postgresql, бэкфилл, миграции, тестированиеРасширение jsquery для PostgreSQL — точные и быстрые выборки из JSONB
2025-07-28 в 8:00, admin, рубрики: json, jsonb, jsquery, postgresql, selectel, sql
Привет! Это Антон Дятлов, инженер по защите информации в SelectelЧитать полностью »
Работа с колонками типа JSON в PostgreSQL (на примере использования отдельных функций)
2025-02-19 в 9:35, admin, рубрики: json, json_array_elements, json_array_elements_text, jsonb, jsonb_array_length, jsonb_pretty, jsonb_set, jsonb_to_record, jsonb_to_recordset, postgresqlСодержание
Вступление (и некоторые общие сведения)
Поддержка JSON появилась в PostgreSQL в версии 9.2Читать полностью »
Борьба с TOAST или будущее JSONB в PostgreSQL
2022-01-23 в 21:26, admin, рубрики: high performance, highload, json, jsonb, postgres, postgresql, postgresql performance, toast, Администрирование баз данных, бенчмарки, Блог компании Конференции Олега Бунина (Онтико), высокая производительность, исследования в it, хранилища данных
В PostgreSQL есть два типа данных: JSON и JSONB. Первый формат является текстовым хранилищем, в котором json хранится "as is", второй — бинарным, в нем ключи отсортированы (сначала по длине ключа, а потом по его названию), дубликаты удалены, а пробелы удалены. Этот SQL-запрос иллюстрирует различие между JSON и JSONB:
Упрощенный синтаксис для jsonb в PostgreSQL 14
2021-02-01 в 19:02, admin, рубрики: jsonb, postgresql, sql, Программирование, Разработка веб-сайтовКак сообщает telegram-канал Cross Join, в репозиторий Postgres упал комит, упрощающий работу с jsonb. Теперь можно обращаться к частям jsonb с помощью квадратных скобок, причем это работает как на чтение, так и на запись.
Прощай jsonb_set и прочие костыли типа data = data - 'a' || '{"a":5}'
Несколько примеров:
Обновляем значение объекта по ключу. 25 здесь является числом, но взято в кавычки, потому что присваиваемое значение должно быть jsonb
-- (person_data имеет тип jsonb)
UPDATE users
SET person_data['age'] = '25';
Замена EAV на JSONB в PostgreSQL
2019-11-09 в 21:51, admin, рубрики: eav, jsonb, postgresql, sql, архитектура базы данных, базы данных, хранение данныхTL; DR: JSONB может значительно упростить разработку схемы БД без ущерба производительности в запросах.
Введение
Приведем классический пример, наверное, одного из старейших вариантов использования в мире реляционных БД (база данных): у нас есть сущность, и необходимо сохранить определенные свойства (атрибуты) этой сущности. Но не все экземпляры могут имеют одинаковый набор свойств, к тому же в будущем, возможное добавление ещё свойств.
Самый простой путь решения этой проблемы – это создание столбца в таблице БД для каждого значение свойства, и просто заполнять те, которые нужны для определенного экземпляра сущности. Отлично! Проблема решена… до того момента, пока ваша таблица не содержит миллионы записей и у вас не возникнет необходимость добавить новую запись.
Рассмотрим паттерн EAV (Entity-Attribute-Value), он встречается достаточно часто. Одна таблица содержит сущности (записи), другая таблица содержит имена свойств (атрибутов), а третья таблица связывает сущности с их атрибутами и содержит значение этих атрибутов для текущей сущности. Это дает вам возможность иметь разные наборы свойств для разных объектов, а также добавлять свойства “на лету”, не изменяя структуры БД.
Что нового в PostgreSQL 11: улучшения в кастинге
2018-05-10 в 14:24, admin, рубрики: jsonb, postgresql, Блог компании Postgres Professional, Йеннифэр, приведение типов
Продолжая тему новый возможностей грядущего релиза PostgreSQL 11 (предыдущие посты: раз, два, три), я хотел бы рассказать об одном небольшом, но важном изменении. Изменение это касается кастинга одних типов в другие. И, конечно же, оно касается JSONB, потому что в PostgresPro мы его очень любим! Читать полностью »
Что нового в PostgreSQL 11: JSONB-трансформы
2018-04-25 в 11:54, admin, рубрики: json, jsonb, perl, postgresql, python, Блог компании Postgres Professional
В предыдущих постах вы могли прочитать про INCLUDE-индексы и встроенный веб-поиск. Эти фичи появятся в PostgreSQL 11, релиз которого, напомню, планируется в октябре. Сегодня мне хотелось бы продолжить обзор новых фичей грядущего релиза, рассказав про JSONB-трансформы для языков PL/Python (3f44e3db) и PL/Perl (341e1661). Оба патча написаны Антоном Быковым. Читать полностью »
JSON и PostgreSQL 9.5: с еще более мощными инструментами
2016-06-24 в 10:04, admin, рубрики: 9.5, documents, functions, json, jsonb, modifiers, non structured data, nosql, operators, postgres, postgresql, PostgresSQL, PostgresSQL 9.5, метки: 9.5, documents, functionsPostgreSQL 9.5 представил новый функционал, связанный с JSONB, значительно усиливающий его уже имеющиеся NoSQL характеристики. С добавлением новых операторов и функций, теперь стало возможно с легкостью изменять данные, хранящиеся в JSONB формате. В этой статье будут представлены эти новые операторы с примерами, как им можно использовать.
С добавлением типа данных JSON в версии 9.2, PostgreSQL наконец-то начал поддерживать JSON нативно. Несмотря на то что с выходом этой версии стало возможно использовать PostgreSQL как «NoSQL» базу данных, не так много можно было сделать на самом деле в то время из-за нехватки операторов и интересных функций. С момента выхода 9.2 версии, поддержка JSON значительно улучшалась в каждой следующей версии PostgreSQL, выливаясь сегодня в полное преодоление изначальных ограничений.
Читать полностью »
