前段时间,我想为我们的数百万用户网站建立一个新的统计系统,为我们的客户记录和报告用户操作。
数据库设计非常简单,包含一个表,带有一个 foreignId(200,000 个不同的 id)、一个 datetime 字段、一个 actionId(30 个不同的 id)和另外两个包含一些元信息(只是 smallints)的字段。对其他表没有限制。此外,我们有两个索引,每个索引包含 4 个字段,这些字段不能被删除,因为当我们拥有较小的索引时用户会超时。foreignId 是最重要的字段,因为每个查询都包含此字段。
我们选择使用 SQL 服务器,但实施后关系数据库似乎不是一个完美的选择,因为我们不能每天插入 3000 万条记录(它只是插入,我们不做任何更新),同时还要做很多随机读取数据库;因为索引的更新速度不够快。Ergo:我们有一个大问题 :-) 我们暂时解决了这个问题,但是
关系数据库似乎不适合这个问题!
像 BigTable 这样的数据库会是更好的选择吗?为什么?或者在处理这类问题时还有其他更好的选择吗?
注意。此时我们使用单 8 核 Xeon 系统,4 GB 内存和 Win 2003 32 位。据我所知,RAID10 SCSI。索引大小约为表大小的 1.5 倍。