MySQL + PHP: ~ 500 КБ JSON-файл - загрузка данных в виде таблиц и полей VS в виде одной сериализованной переменной - PullRequest
0 голосов
/ 14 января 2019

Я создаю веб-сайт, который взаимодействует с автономным проектом через файлы json, отправленные из автономного проекта на сайт. Сайт должен будет загрузить эти файлы и манипулировать данными.

Возможно ли с помощью современных вычислительных мощностей просто загрузить эти файлы в базу данных в виде единого сериализованного поля, которое затем можно загружать и декодировать для каждого использования?

Или это сэкономит значительные накладные расходы для правильного хранения JSON в виде таблиц и полей и ссылки на них для каждого использования?

Ответы [ 3 ]

0 голосов
/ 14 января 2019

Новая оболочка MySQL имеет загрузчик JSON, который не только очень быстр, но и дает вам большой контроль над обработкой данных. Смотри https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-json.html

0 голосов
/ 14 января 2019
  1. Загрузить как JSON.
  2. Подумайте, какие запросы нужно выполнить.
  3. Скопируйте выбранные поля в столбцы MySQL, чтобы эти запросы могли использовать WHERE, GROUP BY, ORDER BY MySQL вместо того, чтобы иметь дело с обработкой в ​​клиенте.

Таблица базы данных содержит набор строк с аналогичной структурой. Каждая строка имеет постоянный набор столбцов. (NULLs может использоваться для указания отсутствующих столбцов для данной строки.) JSON усложняет задачу, предоставляя сложный столбец. Мой совет выше - это компромисс между открытой гибкостью JSON и необходимостью использовать сервер базы данных для обработки большого количества данных. Дальнейшее обсуждение здесь .

0 голосов
/ 14 января 2019

Не зная больше о проекте, вероятно, лучшим решением будет таблица с несколькими полями.

В долгосрочной перспективе будет больше возможностей для данных, например, индексация полей, поиск по полям и многие другие команды MySQL, которые были бы невозможны, если бы все они хранились в одной переменной.

Также рассмотрите будущие версии проекта, например, добавить другое поле в таблицу просто, но добавить другое поле в блок JSON будет сложнее.

Рост проекта, что если вы испытаете рост 100x или 1000x, стол справится с дополнительной нагрузкой.

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

Отладка также будет проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...