作者appleboy46 (我是道明柏毅)
看板PHP
标题Re: [请益] mssql_query的问题
时间Sun Mar 16 17:36:16 2008
※ 引述《okdla (跟着乡民进来看热闹)》之铭言:
: 不知道有人遇过这个问题吗???
: 我用mssql_query撷取3万笔资料结果当掉了
: 出现allowed memory size of xxx bytes...
: 我上google去找解决的方法...发现可以用ini_set("memory_lmit",xx)
: 来解决,於是我把我的memory_limit一直加大到500M,终於解决了
: 可是因为资料笔数会一直增加,所以以後查询的时候一定又会爆记忆体
: 那我就必须一直增加memory_limit,可是主机的记忆体大小只有1G,电脑上的
: 分页记忆大小也才500M,这样会对主机有什麽不好的影响吗???
: 再来就是,mssql并不像mysql有limit 的功能,虽然有top 但是却不是很好用
: 所以在撷取资料的时候没有办法分页的撷取....只能一次把全部的资料取出来
: 然後再用mssql_data_seek去做分页..可是一但资料笔数很多再加上查询的栏位很多..
: 就会如同上述一样出现当掉的讯息...不知道有没有什麽方法能够解决呢???
MSSQL 实做分页纪录
SELECT * FROM
(
SELECT TOP 5 * FROM
(
SELECT TOP 10 *
FROM table
ORDER BY id DESC
) t1
ORDER BY id
) t2
ORDER BY id DESC
这样就可以了吧~
我没有看过抓3万笔资料出来要干麽?
--
********************************************************
* Appleboy Blog *
*
http://blog.Wu-Boy.com/ *
* Appleboy Life *
*
http://life.wu-boy.com/ *
********************************************************
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.123.107.41
1F:推 okdla:统计资料.... 03/16 18:46
2F:推 yukang:因为你要把三万笔资料丢给 php 计算? 03/16 20:49
3F:推 okdla:我之前有问过统计大笔资料的问题...(参考前面的文章),後来我 03/16 21:06
4F:→ okdla:发现如果用那个方式跑的话,要统计20个相关的表格可能需要快 03/16 21:07
5F:→ okdla:30分钟...所以我就想把资料都叫出来让php跑,结果速度果然比 03/16 21:08
6F:→ okdla:较快..不过当一次统计三万笔甚至更多的时候..就会有记忆体不 03/16 21:08
7F:→ okdla:足的情形...真是让我伤透了脑筋.... 03/16 21:09
8F:→ lslong:你会慢的原因应该是index的关系..不然区区几万笔不太可能 03/17 15:55
9F:→ lslong:会慢到那里去.. 03/17 15:56
10F:推 okdla:不过如果资料库的栏位都设成index的话,在新增和更新上不是会 03/17 19:48
11F:→ okdla:比较慢吗?? 03/17 19:49
12F:→ lslong:只需要将有必要的设成index..另外比起新增及修改... 03/19 12:00
13F:→ lslong:查询才是最大量使用的部份.. 03/19 12:01
14F:→ appleboy46:大部分用 index 都是在查询方面效能改变很大 03/19 14:56