2016-12-30 1 views
0

Я кодирую небольшое приложение и задаю вопрос. Я решаю, лучше ли хранить данные в JSON или строке mysql для моего сценария.Хранение данных в строке JSON против MYSQL

Я кодирую приложение, которое может иметь множество обращений к странице, и из-за этого я собираюсь хранить JSON-кодированный массив в столбцах VS mysql rows. Один запрос будет быстрее выполнять VS 2.

Проблема, которую я пытаюсь выяснить, мне нужно удалить часть закодированного массива JSON, но это означает, что при запросе удаления мне придется получить все данные , JSON декодирует и отключает объект, а затем обновляет строку снова. VS mysql удалить строку.

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

+1

Если вы не используете MySQL 5.7, который имеет встроенную поддержку типов данных JSON, вам следует избегать такого подхода. Вам не нужно делать несколько запросов, вы можете использовать 'JOIN' для связи нескольких строк в дочерней таблице с главной таблицей. – Barmar

+0

@Bamar. Один запрос нельзя использовать, потому что сначала мне нужно получить информацию о продукте из одной строки таблицы, а затем все ее транзакции из другой таблицы. транзакций может быть много строк. – user3620142

+0

Для этого вы используете JOIN. это один запрос – e4c5

ответ

0

Возможно, это зависит от деталей, которые вы не предоставляете.

У вас есть , чтобы использовать MySQL? Если вы извлекаете объект JSON, а затем изменяете его и сохраняете обратно, MongoDB кажется более быстрым для этого случая использования.

Один запрос будет быстрее выполнить VS 2.

Вам не нужно больше, чем один запрос, возвращающий несколько строк; запрос может возвращать больше строк, но циклизация результатов и сериализация/десериализация JSON - это и незначительные затраты по сравнению с другими вещами, которые вам придется делать на вашем сайте. Не думайте слишком много об этом.

Как правило, в реляционной базе данных попытайтесь нормализовать данные, пока не увидите проблемы с производительностью. Если вы настроены на использование MySQL, вам, вероятно, понадобится много строк. По мере роста вашего набора данных самым простым способом повысить производительность запросов будет добавление индексов, и вы не сможете сделать это на блоке JSON.

+0

Мне действительно не нужно использовать mysql, но это предпочтительнее, поскольку доступно для меня на данный момент. Однако мне нужно будет использовать несколько запросов, поскольку запрос 1 должен получить информацию о продукте из одной строки таблицы, тогда запрос 2 должен получить все транзакции, которые могут быть многочисленными. – user3620142

+0

Если вы вынуждены использовать два запроса, что-то не так с вашей структурой данных. Вот для чего предназначены. Вы должны ВХОДИТЬ в таблицу транзакций на основе ограничения FOREIGN KEY. Конечно, если вы используете капли JSON в качестве данных, вы также не можете делать JOINs. – mlg

+0

Оцените ответ, но не можете работать для меня. Мне нужны данные в 2 отдельных массивах. один с информацией о продукте, а другой - с транзакциями. присоединение даст мне данные, но затем его слишком много работы по циклу и построению 2 отдельных массивов данных. – user3620142

 Смежные вопросы

  • Нет связанных вопросов^_^