Архитектура базы данных для миллионов новых строк в день

Мне нужно реализовать специально разработанный сервис веб-аналитики для большого количества веб-сайтов. Ключевые объекты здесь:

Веб-сайтпосетитель

Каждый уникальный посетитель будет иметь одну строку в базе данных с такой информацией, как целевая страница, время суток, ОС, браузер, реферер, IP и т. Д.

Мне нужно будет выполнить агрегированные запросы к этой базе данных, такие как «СЧИТАЙТЕ всех посетителей, которые используют Windows в качестве ОС и пришли с Bing.com»

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

Мои вопросы:

1) Является ли MySQL хорошей базой данных для этой цели?

2) Что может быть хорошей архитектурой? Я думаю о создании новой таблицы для каждого сайта. Или, возможно, начать с одной таблицы, а затем создать новую таблицу (ежедневно), если количество строк в существующей таблице превышает 1 миллион (мое предположение верно). Единственное, что меня беспокоит, так это то, что если таблица становится слишком большой, SQL-запросы могут значительно замедляться. Итак, какое максимальное количество строк я должен хранить в таблице? Кроме того, существует ли ограничение на количество таблиц, которые может обрабатывать MySQL.

3) Целесообразно ли делать агрегированные запросы по миллионам строк? Я готов подождать пару секунд, чтобы получить результаты для таких запросов. Это хорошая практика или есть какой-либо другой способ делать сводные запросы?

В двух словах,Я пытаюсь спроектировать крупномасштабное хранилище данных, которое будет тяжело писать, Если вы знаете о каких-либо опубликованных тематических исследованиях или отчетах, это будет здорово!

Ответы на вопрос(4)

Ваш ответ на вопрос