用户
 找回密码
 入住 CI 中国社区
搜索
楼主: avinmo
收起左侧

[分页] 十万级数据量的CI分页类优化,比原生分页类快一百倍!!

  [复制链接]
发表于 2012-4-24 20:37:01 | 显示全部楼层
优化无止境,多谢分享!
发表于 2012-4-26 15:31:02 | 显示全部楼层
1楼的我怎么就不明白了,ci本身的分页会比你些的慢 没发觉  
只不过你的sql语句写的不好
发表于 2012-5-2 23:30:29 | 显示全部楼层
最直接的对比方式,看下三种语句的explain
发表于 2012-5-3 00:33:33 | 显示全部楼层
分页类不需要谈什么效率吧,只是个显示用的,关键在sql
发表于 2012-5-8 17:26:38 | 显示全部楼层
大数据量的分页展示的确比较消耗资源,占用内存。可用ORM中的$object->get_iterated()方法,get_iterated()方法可减少内存开销,提高数据查询效率。具体信息看http://datamapper.wanwizard.eu/pages/getalt.html      
发表于 2012-6-5 17:23:08 | 显示全部楼层
学习了
发表于 2012-6-9 02:58:19 | 显示全部楼层
单一主键索引按照主键分页再慢能慢到哪去?
6楼提供的方法加个order by试试
15楼说的迭代器就是原生php的做法
这种方法是优化了内存使用率,跟讨论的分页SQL执行效率是两回事
支持5楼的做法,赞同10楼的说法,自由度掌握在自己手里
做过几个稍微大点的项目,优化方案都不是从SQL语句切入的
全是按照业务逻辑重新整理数据结构,优化索引,必要时使用分表和分区
百万级的简单数据表就不用考虑那么多了,保证单表操作,都不会影响效率
哪怕运行时间达到一秒,离可忍受的慢查询标准还有一段距离呢,纠结那0.0几秒没有实际意义



评分

参与人数 1威望 +5 收起 理由
^淡如清风 + 5 很给力!

查看全部评分

发表于 2012-6-13 12:00:43 | 显示全部楼层
还冷清 你的要求不低啊
发表于 2012-7-1 23:58:43 | 显示全部楼层
分页类不应该会涉及到多大的效率问题吧!
分页类只是用来显示,设计到的数据库的不应该跟他混为一谈。
数据库总量,数据库limit查询才是我们应该考虑优化的地方。
发表于 2012-7-12 09:54:59 | 显示全部楼层
avinmo 发表于 2012-4-19 09:38
下面贴上部分代码供大家参考。

                $segment4 = (int)$this->uri->segment(4);

其实这种方式确实很快,在特定的条件下是非常有用的!  大家要注意order by id desc,这里是用id比较的,所以只能用ID来排序,用其它的不行

本版积分规则