Примечание: Я искал и не смог найти ни одной дублированной темы.Пожалуйста, не поймите это неправильно с другими Large Dataset связанными темами.
Вот то, с чем я сталкиваюсь:
За каждый запрос я должен хранить 1000до 50 000 наборов данных вместе с информацией о запросе.
Что я должен делать с созданными наборами данных:
- Выполнение математических операций
- Получение и разбиение на страницы
Теперь я подумываю о следующих подходах:
- Создайте одну таблицу для хранения информации запроса и другую связанную таблицу для хранения наборов данных.
- Создайте одну таблицу для хранения информации запроса с одним полем JSON для хранения всех наборов данных в виде объектов JSON.
- Комбинация из 1 и 2. Одна таблица для запроса.Одна таблица для наборов данных.Но разбивайте наборы данных на небольшие сегменты и сохраняйте их в поле JSON в таблице
dataset
. - Что-то, что вы рекомендуете, а я не подумал.
Примерсхем таблиц:
Подход № 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)
Учитывая производительность и эффективность ввода / вывода, я хотел бы выбрать правильный подход перед рисованием структуры.
Есть ли кто-нибудь, кто имеет опыт в аналогичном деле?
Обмен знаниями приветствуется.