|
这个主题共有 4 回复 / 1 页 [
]
|
|
|
|
|
|
分页的算法问题,能否提高效率(非SQL)
|
发表: 2006年10月06日 18:35
|
回复
|
|
大家对分页都很熟悉了,我上个项目是这样分页的,大家看看整个过程是否有潜力可挖.
基本记录分 Id,title,concept三项,用户可以对它们进行组合查询(非SQL)取得数据并排序,我的处理过程如下.: 1.按查询条件取得所有数据. 2.对这些数据进行排序. 3.取出前20条并显示,取得页数显示在分页栏上.
对第二步和第三步我感觉有潜力可挖,如果采取较好的数据结构和cache的话也许没有那么多事,大家在这方面有没有经验,我们探讨一下.
|
|
|
|
|
|
Re: 分页的算法问题,能否提高效率(非SQL)
|
发表: 2006年10月08日 09:09
|
回复
|
|
》如果采取较好的数据结构和cache的话 是的,如果有好的算法,可以在应用服务器内存中实现,不必使用数据库的算法,但是好像有点重新发明轮子的嫌疑,数据库已经提供了稳定可靠的数据算法排序,直接使用就可以。
而且在内存中进行数据排序,容易破坏业务层的面向对象特征,虽然可以分担数据库一部分负载,但是设计意义不大。
按照Evans DDD的领域建模想法,这部分也是通过数据库查询实现的。
|
|
|
|
|
|
Re: 分页的算法问题,能否提高效率(非SQL)
|
发表: 2006年10月08日 10:47
|
回复
|
|
banq大哥,假设没有数据库Sql的帮助,怎么写这个分页呢?对于海量数据,是否应该有比Sql更快的办法?
我现在的构想是插入记录时就是有序的,三个字段都排一下,这样可以把查询的压力分散倒Insert/Update/Delete中去.
|
|
|
|
|
|
Re: 分页的算法问题,能否提高效率(非SQL)
|
发表: 2006年10月10日 10:55
|
回复
|
|
>对于海量数据,是否应该有比Sql更快的办法 应该是的,这就象做搜索引擎了。
如果你还依赖数据库,那么读写缓存+SQL是一个成本不高的中间解决方案。
你之前说的在内存中进行排序等算法,这个我也思考过,好像很难实现。 这又类似做全文检索了。
|
|
|
|
|
|
Re: 分页的算法问题,能否提高效率(非SQL)
|
发表: 2006年10月11日 23:58
|
回复
|
|
|
谢谢回答,受教了,先用读写缓存+SQL方案吧,有什么想法再向您讨教。
|
|
|
|