MySQL - поле JSON или отдельная таблица для большого набора данных? - PullRequest
0 голосов
/ 09 февраля 2019

Примечание: Я искал и не смог найти ни одной дублированной темы.Пожалуйста, не поймите это неправильно с другими Large Dataset связанными темами.

Вот то, с чем я сталкиваюсь:

За каждый запрос я должен хранить 1000до 50 000 наборов данных вместе с информацией о запросе.

Что я должен делать с созданными наборами данных:

  • Выполнение математических операций
  • Получение и разбиение на страницы

Теперь я подумываю о следующих подходах:

  1. Создайте одну таблицу для хранения информации запроса и другую связанную таблицу для хранения наборов данных.
  2. Создайте одну таблицу для хранения информации запроса с одним полем JSON для хранения всех наборов данных в виде объектов JSON.
  3. Комбинация из 1 и 2. Одна таблица для запроса.Одна таблица для наборов данных.Но разбивайте наборы данных на небольшие сегменты и сохраняйте их в поле JSON в таблице dataset.
  4. Что-то, что вы рекомендуете, а я не подумал.

Примерсхем таблиц:

Подход № 1 :

таблица запрос : id (int unsigned), user_id (int), ip (varchar), dataset_count (smallint unsigned)

таблица набор данных : id (bigint), request_id (int unsigned), timestamp (int unsigned), cycles (tinyint), probability (tinyint)


Подход № 2 :

таблица запрос : id (int unsigned), user_id (int), ip (varchar), dataset_count (smallint unsigned), datasets (json)


Подход# 3 :

таблица запрос : id (int unsigned), user_id (int), ip (varchar), dataset_count (smallint unsigned)

таблица набор данных : id (bigint), request_id (int unsigned), sequence_no (smallint), chunked_datasets (json)


Учитывая производительность и эффективность ввода / вывода, я хотел бы выбрать правильный подход перед рисованием структуры.

Есть ли кто-нибудь, кто имеет опыт в аналогичном деле?

Обмен знаниями приветствуется.

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