Мне нужно реализовать специально разработанный сервис веб-аналитики для большого количества веб-сайтов.Ключевыми объектами здесь являются:
Каждый уникальный посетитель будет иметь одну строку в базе данных с такой информацией, как целевая страница,время суток, ОС, браузер, реферер, IP и т. д.
Мне нужно будет выполнить агрегированные запросы к этой базе данных, такие как «СЧИТЫВАТЬ всех посетителей, которые используют Windows как ОС и пришли с Bing.com»
У меня есть сотни сайтов для отслеживания, и количество посетителей этих сайтов варьируется от нескольких сотен в день до нескольких миллионов в день.В целом, я ожидаю, что эта база данных будет расти примерно на миллион строк в день.
Мои вопросы:
1) Является ли MySQL хорошей базой данных для этой цели?
2) Что может быть хорошей архитектурой?Я думаю о создании новой таблицы для каждого сайта.Или, возможно, начать с одной таблицы, а затем создать новую таблицу (ежедневно), если количество строк в существующей таблице превышает 1 миллион (мое предположение верно).Единственное, что меня беспокоит, так это то, что если таблица становится слишком большой, SQL-запросы могут значительно замедлиться.Итак, какое максимальное количество строк я должен хранить в таблице?Более того, существует ли ограничение на количество таблиц, которые может обрабатывать MySQL.
3) Желательно ли выполнять агрегированные запросы по миллионам строк?Я готов подождать пару секунд, чтобы получить результаты для таких запросов.Является ли это хорошей практикой или есть какой-либо другой способ выполнения агрегированных запросов?
В двух словах: Я пытаюсь разработать крупномасштабную установку типа хранилища данных с интенсивной записью .Если вы знаете о каких-либо опубликованных тематических исследованиях или отчетах, это будет здорово!