从巨大的数据库表中检索结果集的策略

时间:2011-06-26 15:29:47

标签: java sql database hibernate gigaspaces

我相信许多人遇到这个问题:从前端JSP页面,用户根据构建SQL的一些标准设置并用于从一个或多个数据库表中检索结果。问题是,这个表每天增加1万,并且变得巨大。

我知道这个问题没有明确答案:我们如何才能加快这个程序?索引可能是一个(我听到很多,但知之甚少),另外我想到的是使用一些定制的缓存解决方案,如Gigaspace。在这种情况下,Hibernate会帮忙吗?

其他人想加2美分?

非常感谢! 约翰

2 个答案:

答案 0 :(得分:2)

嗯,是的,你确实需要索引你的数据库!

如果您甚至没有索引数据库,那么您可能需要先阅读一些关于如何正确索引数据库的内容。

然后,关于数据库表中数百万行的数据本身并不重要:一个体面的数据库系统的存在理由是应对具有数百万行的表。但是你要确保哪些行实际检索的规范从那些数百万是合理的,并且有问题的查询可能会脱离适当的索引(例如因为用户输入的参数缩小范围。 “添加索引”并不是一个神奇的灵丹妙药:您需要确保添加的索引适合于查询到达数据库时最终的查找方式。

我不会亲自走上添加虚假缓存和其他复杂层的道路,直到(a)你实际上确定在实践中你需要它们和(b)你实际上可以确定你是你的层添加将解决您希望他们解决的问题。如果你还没有完成索引数据库的索引,那么我真的要从构建一个简单的,经过适当优化的解决方案开始,然后从那里开始。

答案 1 :(得分:1)

索引是必须拥有的数据量,甚至是一个派系!至于任何其他答案,它实际上取决于您计划如何处理这些数据,因为一种策略不会涵盖所有用例。