十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這個問題在PHP的官方網(wǎng)站上叫緩沖查詢和非緩沖查詢(Buffered and Unbuffered queries)。PHP的查詢缺省模式是緩沖模式。也就是說,查詢數(shù)據(jù)結果會一次全部提取到內存里供PHP程序處理。這樣給了PHP程序額外的功能,比如說,計算行數(shù),將指針指向某一行等。更重要的是程序可以對數(shù)據(jù)集反復進行二次查詢和過濾等操作。但這種緩沖查詢模式的缺陷就是消耗內存,也就是用空間換速度。

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供橫峰網(wǎng)站建設、橫峰做網(wǎng)站、橫峰網(wǎng)站設計、橫峰網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、橫峰企業(yè)網(wǎng)站模板建站服務,10余年橫峰做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
相對的,另外一種PHP查詢模式是非緩沖查詢,數(shù)據(jù)庫服務器會一條一條的返回數(shù)據(jù),而不是一次全部返回,這樣的結果就是PHP程序消耗較少的內存,但卻增加了數(shù)據(jù)庫服務器的壓力,因為數(shù)據(jù)庫會一直等待PHP來取數(shù)據(jù),一直到數(shù)據(jù)全部取完。
很顯然,緩沖查詢模式適用于小數(shù)據(jù)量查詢,而非緩沖查詢適應于大數(shù)據(jù)量查詢。
當查詢類容過多時會導致php內存溢出,建議加limit分段查詢,或著修改php.ini文件的
memory_limit 字段,默認是128M,改成你需要的大小
thinkPHP 查詢數(shù)據(jù)庫中id最大的一條數(shù)據(jù)操作如下:
先給數(shù)據(jù)庫中的這個字段(sort)分組 再降序排列, 取第1條。
通過步驟1 獲取了 sort值為最大的數(shù)據(jù), 然后在 通過 where sort ='步驟1取的值'。
查詢最大ID,select max(id) from table。
查詢最大ID的記錄 select * from table where id = (select max(id) from table)
或者select * from table t where ?not exists (select 1 from table t1 where t1.id t.id)
表結構可能有問題,你用來查詢的字段是鍵么?不是的話在百萬數(shù)據(jù)量時時間長是必然的,還有你的SQL語句,如果有聯(lián)表查之類的,而表之間的關聯(lián)和條件有非鍵項,那慢也是正常的