【发布时间】:2011-03-31 09:31:38
【问题描述】:
我需要为大量网站实施定制开发的网络分析服务。这里的关键实体是:
- 网站
- 访客
每个唯一访问者在数据库中都会有一行,其中包含登录页面、一天中的时间、操作系统、浏览器、引荐来源网址、IP 等信息。
我需要对此数据库进行汇总查询,例如“统计所有使用 Windows 作为操作系统并来自 Bing.com 的访问者”
我有数百个网站要跟踪,这些网站的访问者数量从每天几百到几百万不等。总的来说,我预计这个数据库每天会增长大约一百万行。
我的问题是:
1) MySQL 是一个很好的数据库吗?
2) 什么是好的架构?我正在考虑为每个网站创建一个新表。或者,如果现有表中的行数超过 100 万,则可能从单个表开始,然后(每天)生成一个新表(我的假设是正确的)。我唯一担心的是,如果表变得太大,SQL 查询会变得非常缓慢。那么,每个表我应该存储的最大行数是多少?此外,MySQL 可以处理的表数量是否有限制。
3) 对数百万行进行聚合查询是否可取?我准备等待几秒钟以获取此类查询的结果。这是一种好的做法还是有其他方法可以进行聚合查询?
简而言之,我正在尝试设计一种大型数据仓库类型的设置,这种设置会很繁重。如果您知道任何已发表的案例研究或报告,那就太好了!
【问题讨论】:
-
如果您已经设计了数据库。可以分享一下数据库设计吗?
标签: mysql database scalability analytics data-warehouse