Вопрос

а) у меня 1000000 доменных имен

б) у каждого домена около 100000 сайтов

c) Каждый сайт имеет около 10000 посещений ежедневно / (5000 уникальных посещений ежедневно)

d) Как владелец всех этих сайтов, я хочу увидеть, сколько посетителей на выбранных сайтах у меня в выбранные периоды времени, например:

Сколько уникальных посетителей было с 4 декабря 1987 года по 23 апреля 2010 года на Mydomain.com/tutorials

Сколько уникальных посетителей было с 30 августа 1996 года по 16 июля 2009 года на yourdomain.com/Reeference?

Для традиционной базы данных SQL это боль.

Какой самый умный подход? Какой механизм хранения для использования?

У меня есть только знания SQL. Любые дополнительные ресурсы значительно ценят.

Это было полезно?

Решение

С номерами и потенциальными запросами, похожими на те, которые вы перечислили, я бы очень прошел, что простая база данных SQL (PSQL / TSQL) будет соответствовать вашим потребностям. Вместо этого вам понадобится некоторая форма обработки OLAP, такая как SSAS (услуги по анализу SQL Server) или аналогичное предложение от Oracle.

Другие советы

Я думаю, что DB - лучший подход для этой опции, который вам просто приходится Cr4Ete пару таблиц и распространять данные между ними, например:

Table: Domains [id, name]
Table: Sites [id, domain_id, name]
Table: Visits [id, site_id, date]

Таким образом, вы можете выбрать «Пусть»:

SELECT COUNT(v.id) 
FROM Visits AS v 
RIGHT JOIN Sites AS s
ON v.site_id = s.id
RIGHT JOIN Domains AS d
ON s.domain_id = d.id
WHERE d.name = 'mydomain.com' 
      AND s.name = 'tutorials' 
      AND v.date BETWEEN startDate AND endDate 

StartDate и EndDate следует пропустить через язык программирования (PHP, ASP) или их можно установить вручную в выборе

Надеюсь, это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top