Доброго дня, подскажите пожалуйста как лучше спроектировать БД, для сбора статистики ?
Собирать нужно несколько полей, проблема в том что записей может быть в день до 500к.
Есть некий набор данных
id - date - data1 - data2 - data3
Сейчас реализвано так несколько таблиц зак каждый месяц
январь
id1 - date - data1 - data2 - data3
id 2- date - data1 - data2 - data3
....
id 87000 - date - data1 - data2 - data3
февраль
id1 - date - data1 - data2 - data3
id2- date - data1 - data2 - data3
....
id 20000- date - data1 - data2 - data3
всё равно вопрос не понятен: собирать - писать в базу, можно сделать таблично по месячно, можно сделать понедельно, что угодно.
Так же данные не понятны.
Если всё цифры - то не понятен вопрос вообще, у вас описана ОК структура данных.
Если же все данные в виде строк, например логи заходов, с хранением адресов и тп - то можно подумать как оптимизировать, чтобы уменьшить хранение данных.
Следующий вопрос:
а как вы планируете читать статистику: от этого тоже может зависить.
Если вам нужно выбрать количество строк где data = 1 or data2=1 or data3=1 or data4 = 1 то тогда стоит менять структуру данных
если же выборки всегда вида: data=1 and data2=33 and data3 = 44 и data это например номер пользователя, поиск происходит всегда по номеру пользователя - то другой ответ требуется.
Oleg: Спасибо за отклик, сейчас подневно, да это логи заходов, записей в день может быть до одного миллиона, сейчас если делать выборку за большой период, то все очень долго формируется. Все отчеты сводятся к простой группировке за период сгруппированые по разным полям.
Есть ли смысл попробывать сделать все в одной таблице размер которой станет например 30 миллион строк?И как это может сказаться на проивзодительности?
Сергей Сергеев: 30 миллионов строк - мало что говорит :)
Нужен профиль нагрузки: т.е. какие запросы вы делаете.
плюс вам никто не мешает делать раз в сутки статистику за прошлый день (готовую для вывода админам), и работать в дальнейшем с ней. Даже если такая статистка будет генерироваться 5 минут, в 4 часа ночи - то особых проблемм нету.
+ посмотрите в сторону индексов, индексы очень ускоряют работу.