в настоящее время я сохраняю данные json в столбце строкового типа, есть ли преимущества в создании типа json?

#laravel #laravel-5

#laravel #laravel-5

Вопрос:

В моем проекте я в настоящее время сохраняю некоторые данные json в этом столбце:

 $table->string('meta')->nullable();
  

Есть ли какие-либо реальные преимущества использования

 $table->json('meta')->nullable();
  

Поскольку мое приложение должно работать как с MySQL, так и с MariaDB, я не использую никаких дополнительных функций, предлагаемых laravel для поиска и обновления столбцов json. Итак, если мы посчитаем эти преимущества, есть ли какие-либо другие преимущества использования json вместо string для столбца, который будет сохранять данные json?

Комментарии:

1. Размер поля будет учитываться. При сохранении большого количества json.

2. таким образом, тип json предлагает гораздо больший объем памяти, чем тип string?

Ответ №1:

Основные преимущества JSON перед String описаны в документах

Автоматическая проверка документов JSON, хранящихся в столбцах JSON. Недопустимые документы выдают ошибку.

Оптимизированный формат хранения. Документы JSON, хранящиеся в столбцах JSON, преобразуются во внутренний формат, который обеспечивает быстрый доступ для чтения к элементам документа. Когда сервер позже должен прочитать значение JSON, сохраненное в этом двоичном формате, значение не нужно анализировать из текстового представления. Двоичный формат структурирован таким образом, чтобы сервер мог искать подобъекты или вложенные значения непосредственно по ключу или индексу массива, не считывая все значения до или после них в документе.

И могу добавить, что вы можете создать вторичный индекс для столбцов json.