Встречается на собеседованиях • сегодня

В чем разница между JSON и JSONB в PostgreSQL

Основное отличие между JSON и JSONB в PostgreSQL заключается в хранении и обработке данных:

  • JSON хранится как текст в исходном формате, включая пробелы и порядок ключей. Проверяется только на валидность при вставке. Занимает больше места и медленнее работает при операциях.

  • JSONB хранится в бинарном формате (оптимизированном), без пробелов и с сортировкой ключей. Поддерживает индексы, работает быстрее при запросах и занимает меньше места (но может быть чуть медленнее при вставке из-за преобразования).

Пример:

sql
-- Создание таблицы с JSON и JSONB
CREATE TABLE test_data (
    id SERIAL PRIMARY KEY,
    data_json JSON,
    data_jsonb JSONB
);

-- Вставка данных
INSERT INTO test_data (data_json, data_jsonb) 
VALUES ('{"name": "Alice", "age": 30}', '{"name": "Alice", "age": 30}');

-- Запрос с условием (JSONB работает эффективнее)
SELECT * FROM test_data WHERE data_jsonb @> '{"age": 30}';

Когда использовать:

  • JSON — если важна точная сохранность формата (пробелы, порядок ключей).
  • JSONB — для большинства случаев, особенно при частых запросах и операциях с данными.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы