我有一个数据库,其表格在一个表中有数十亿行一个月,而且我有过去5年的数据。我试图以所有可能的方式优化数据,但延迟并没有减少。我知道有一些解决方案,比如使用水平扯皮和垂直褶皱。但我不确定任何开源实现和进行切换所需的开发时间。有没有人有使用这种系统的经验?
谢谢。
答案 0 :(得分:5)
因此,您需要清楚自己想要对这些数据做些什么。如果答案是“一切”那么,你的表现会变慢,因为你无法优化“一切”。
编辑:
嗯,这是什么? 2或3?结果有多大?你需要访问所有5年或仅仅是上个月?你真的需要所有细节,还是可以总结一下?你需要对它进行排序吗?钥匙够用吗?数据多久更新一次?更新数据后,数据需要多快才能上线?数据需要什么样的服务级别? 24x7x7? 9-5x5?天老数据还行吗?谁在使用这些数据?互动用户?批量报告?出口到外部实体?答案 1 :(得分:3)
阅读数据仓库......
捕获平面文件中的数据。 不加载数据库。
设计合适的 Star Schema 架构。
编写程序以进行尺寸一致性;这些程序只会将维度更改加载到数据库。
编写程序,将选定的平面文件记录加载到带有维度副本的数据集市中。
不使用原始数据加载数据库。如初。
答案 2 :(得分:1)
Postgress支持partioning个表格。如果没有别的东西读他们的文件回答Will Hartung的问题将有助于解决问题。
答案 3 :(得分:0)
这是多少GB的数据?这让我想起了LinkIn的故事,以及如何快速计算社交网络,他们不得不在内存中运行一切。根据SO播客,StackOver本身在具有大量内存的服务器上运行,并且任何时候都有大部分数据库在内存中。
还提醒我谷歌的问题,这需要定制软件和大量廉价机器协同工作。