Я буду махать волшебной палочкой. Пуф! Золотые правила использования JSON:
- Если MySQL не нужно искать внутри JSON, а для приложения просто нужен набор материалов, тогда JSON в порядке, возможно, даже лучше.
- Если вы будете искать данные, находящиеся внутри и , у вас есть MariaDB 10.0.1 или MySQL 5.7 (с типом и функциями JSON), тогда JSON может быть практичным. «Dynamic» столбца MariaDB 5.3 является вариантом.
- Если вы делаете вещи «Entity-Attribute-Value», то JSON не очень хорош, но это наименьшее из нескольких зол. http://mysql.rjweb.org/doc.php/eav
- Для поиска по индексированному столбцу, не имея значения, заложенного внутри JSON, большой плюс.
- Для поиска по диапазону в индексированном столбце или в поиске
FULLTEXT
или SPATIAL
JSON не представляется возможным. - Для
WHERE a=1 AND b=2
«составной» индекс INDEX(a,b)
отлично; вероятно, не может приблизиться к JSON. - JSON хорошо работает с «разреженными» данными; INDEXing работает, но не так, с такими. (Я имею в виду значения, которые «отсутствуют» или NULL для многих строк.)
- JSON может дать вам «массивы» и «деревья», не прибегая к дополнительным таблицам. Но выкачайте в такие массивы / деревья только в приложении, , а не в SQL.
- JSON - это мир лучше, чем XML. (Мое мнение)
- Если вы не хотите попасть в строку JSON, кроме приложения, я рекомендую сжать (в клиенте) его сохранение в
BLOB
. Подумайте об этом как .jpg - там есть материал, но SQL все равно.
Укажите ваше приложение; возможно, мы можем быть более конкретными.
задан nbloqs 20 March 2019 в 21:43
поделиться