在超快速的数据库中扫描十亿行
背景 本地数据库包含近13亿个唯一行。每行都与特定的纬度和经度(位置)间接相关。每行都有一个日期戳。 用例 问题如下: 用户设置开始/结束日期以及值的范围(例如100到105)。 系统将按位置分组与给定日期匹配的所有行。 系统执行确定在那些日期期间具有落入给定值范围的统计可能性的位置。 系统向用户显示所有匹配的位置。 这是速度和规模的问题。 题 您能想到哪一种最便宜的解决方案体系结构可使这种系统在五秒钟内为用户检索结果? 当前系统 当前环境是: PostgreSQL 8.4(可以升级;不能选择切换数据库) R和PL / R XFS文件 WD VelociRaptor 8 GB RAM(Corsair G.Skill; 1.3 GHz) 四核原装Intel 7(2.8 GHz) Ubuntu 10.10 可以接受硬件升级。 更新-数据库结构 表中的数十亿行类似于: id | taken | location_id | category | value1 | value2 | value3 id-主键 采取-分配给行的日期 …