作者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
推 okdla:統計資料.... 03/16 18:46
推 yukang:因為你要把三萬筆資料丟給 php 計算? 03/16 20:49
推 okdla:我之前有問過統計大筆資料的問題...(參考前面的文章),後來我 03/16 21:06
→ okdla:發現如果用那個方式跑的話,要統計20個相關的表格可能需要快 03/16 21:07
→ okdla:30分鐘...所以我就想把資料都叫出來讓php跑,結果速度果然比 03/16 21:08
→ okdla:較快..不過當一次統計三萬筆甚至更多的時候..就會有記憶體不 03/16 21:08
→ okdla:足的情形...真是讓我傷透了腦筋.... 03/16 21:09
→ lslong:你會慢的原因應該是index的關係..不然區區幾萬筆不太可能 03/17 15:55
→ lslong:會慢到那裡去.. 03/17 15:56
推 okdla:不過如果資料庫的欄位都設成index的話,在新增和更新上不是會 03/17 19:48
→ okdla:比較慢嗎?? 03/17 19:49
→ lslong:只需要將有必要的設成index..另外比起新增及修改... 03/19 12:00
→ lslong:查詢才是最大量使用的部份.. 03/19 12:01
→ appleboy46:大部分用 index 都是在查詢方面效能改變很大 03/19 14:56