Sobes.tech
Back to questions
Junior — Middle
91

Можете объяснить, что такое тип данных JSONB в базе данных и чем он отличается от обычного JSON?

Companies where asked
Rubytech

Answer from AI

sobes.tech AI

Тип данных JSONB в базе данных, например в PostgreSQL, представляет собой бинарное хранение JSON-данных. В отличие от обычного JSON, который хранит данные в виде текста, JSONB хранит их в бинарном формате, что позволяет:

  • Быстрее выполнять операции поиска и фильтрации по содержимому.
  • Использовать индексы для ускорения запросов.
  • Избавиться от дублирования ключей и упорядочить объекты.

Пример использования в PostgreSQL:

CREATE TABLE example (
    data JSONB
);

INSERT INTO example (data) VALUES ('{"name": "Alice", "age": 30}');

-- Поиск по ключу с использованием индекса
CREATE INDEX idx_data_name ON example USING gin ((data -> 'name'));

SELECT * FROM example WHERE data ->> 'name' = 'Alice';

Таким образом, JSONB более эффективен для работы с JSON-данными, когда важна производительность и возможность сложных запросов.