Я сейчас создаю приложение, в которое я импортирую статистические данные для (в настоящее время) около 15 000 продуктов. В настоящее время, если бы я должен был поддерживать одну таблицу базы данных для ежедневной статистики из одного источника, она увеличивалась бы на 15 000 строк данных (скажем, 5-10 полей в строке в основном с плавающей точкой, int) в день. Очевидно, это приравнивается к более чем 5 миллионам записей в год в одной таблице.
Меня это не волнует так сильно, как мысль о внесении данных из других источников (и, таким образом, увеличении размера базы данных на 5 миллионов записей для каждого нового источника). ).
Теперь данные представляют собой статистические данные / данные, основанные на тенденциях, и будут иметь в основном одну запись в день на запись и множество операций чтения. Однако для создания отчетов и построения графиков «на лету» мне нужен быстрый доступ к подмножествам данных на основе правил (диапазоны дат, диапазоны значений и т. Д.).
Мой вопрос: это лучший способ хранения данных ( MySQL InnoDb tables), или есть лучший способ хранить и обрабатывать статистические данные / данные о тенденциях?
Другие варианты, которые я выбрал в этот момент:
1. Несколько баз данных (по одной на продукт) с отдельными таблицами для каждого источника данных внутри.
(например, База данных: ПродуктA, Таблица (и): Source_A, Source_B, Source_C)
2. Одна база данных, несколько таблиц (по одной для каждого продукта / источника данных)
(например, База данных: Продукты, Таблицы: ProductA_SourceA, ProductA_SourceB и т. д.)
3. Вся фактическая
или конкретная информация о продукте в базе данных и все статистические
данные в csv, xml, json, (плоские файлы) в отдельных каталогах.
Пока что ни один из эти варианты очень удобны, у каждого есть свои плюсы и минусы. Мне нужно разумное решение, прежде чем я перейду к альфа-стадии разработки.