多数据库分页原理介绍

大型web运用中我们都知道会采用多数据库的方式来存储大量数据,这个过程中我们就会采用对数据的垂直划分或者水平划分来组织数据。当然web查询就会涉及到分页,如果采用的水平划分数据,那么查询分页的数据就可能分布在不同的数据库中,那么这个时候我们如何来分页呢?

     其实原理很简单,比如,我要查询第11页的数据,这里每页数据是20条,那么第11页数据的记录位置就在201开始到210的位置结束。假设现在我们的记录水平分割在了3个数据库中(或者3张表中),此时,我们就需要这样来进行分页,首先从每个数据库(每张表)中分别都查出前210条数据,这样这里就有210*3=630条。然后对这630条数据进行排序,从中取出第201条到210条的记录,这就是我们需要的记录。

  这个处理过程中,我们必须要注意的有几点:

第一、在每个数据库中我们的查询条件,排序方式都必须相同 ;

第二、查出之后的所有记录进行合并时的排序方式必须和前面的排序方式相同(这里的排序多半是在内存中进行)

第三、总记录数是几个数据库中符合条件的数据总和。

以上就是多数据库或者多表查询分页的原理,当然,这个分页有一个明显的缺点就是查询的页码越大效率就越低,因为页码越大每次要查询合并排序的记录就越多,这一点得谨慎考虑,因此在分页查询时尽量限制查询返回的记录条数,尽量精确查询。

posted @ 2008-07-07 14:41  lovingprince  阅读(1773)  评论(1编辑  收藏  举报