當前位置:工程項目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 鷹潭OA > 鷹潭網(wǎng)站建設(shè)公司
PHP/MYSQL 查詢大數(shù)據(jù)/遍歷表
PHP:PHP 5.3.6 (cli) (built: Jun 15 2011 16:29:50)
MYSQL:5.1.51
假如我們有的一張表有幾百萬或幾萬萬的記載,我們要運用 PHP 將一切的記載都獲取過來(遍歷數(shù)據(jù)表)進行處置。查詢語句:
<span style="COLOR: rgb(0,128,0)"> SELECT * FROM largetable;
PS:為了證實上面的做法是最佳的方法,我測驗運用 largetable 中的一個字段做 where ,以及 LIMIT,OFFSET 。上面那種 WHERE 取得后果很慢,固然用了索引。后面這種 LIMIT 可以讓你有一種想死的覺得(有興致可以調(diào)查下,《分頁優(yōu)化》)。
以 MYSQL 以及PDO_MYSQL 為例,測驗直接運用以下代碼,必定會呈現(xiàn)超內(nèi)存的狀況:
<span style="COLOR: rgb(0,128,0)"> $result = mysql_query($sql);
<span style="COLOR: rgb(0,128,0)"> while ($rowset = mysql_fetch_assoc($mysql)) {
<span style="COLOR: rgb(0,128,0)"> ...
<span style="COLOR: rgb(0,128,0)"> $stmt = $dbh->prepare($sql);
<span style="COLOR: rgb(0,128,0)"> $stmt->execute();
<span style="COLOR: rgb(0,128,0)"> while ($row = $stmt->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_NEXT)) {
<span style="COLOR: rgb(0,128,0)"> ...
緣由在于在查詢執(zhí)行后,PHP 的MYSQL、PDO_MYSQL 將查詢后果悉數(shù)緩存到了客戶端,也就是 PHP 執(zhí)行地點機械上。如許假如我們要 SELECT * FROM LARGETABLE 查詢的記載在 百萬以上的時分 ,緩存的后果就會十分大,超出 PHP 運用內(nèi)存。所認為了防止如許狀況就需求封閉客戶端的緩存。
這里供應(yīng)二個測試劇本,辨別為 MYSQL、PDO_MYSQL 封閉緩存后查詢樣例。點擊下載:mysql_query
以下是 PDO_MYSQL 在查詢 ~100W 以及 ~200W (540M)數(shù)據(jù)后果(由于我的 PHP 內(nèi)存運用設(shè)置了1G所以沒掛:) )
可以很分明的看出在緩存后果后占用內(nèi)存驚人…,當我們處置萬萬數(shù)據(jù)的時分必掛。
以下是 PDO_MYSQL 封閉緩存查詢 ~200W 的數(shù)據(jù)后果。這下處置萬萬以及E級的數(shù)據(jù)的時分,對內(nèi)存透露表現(xiàn)很淡定。
PS:假如你要處置的數(shù)據(jù)就幾十萬,你照樣調(diào)大點內(nèi)存好了。比方 MYSQL:
mysql_unbuffered_query() 的益處是有價值的:在 mysql_unbuffered_query() 返回的后果集之上不克不及運用 mysql_num_rows() 和 mysql_data_seek()。此外在向 MySQL 發(fā)送一條新的 SQL 查詢之前,必需提取失落一切未緩存的 SQL 查詢所發(fā)生的后果行。
- 1全站內(nèi)置SEO優(yōu)化機制
- 2房地產(chǎn)行業(yè)微信營銷方案3
- 3PHP性能優(yōu)化大全
- 4企業(yè)網(wǎng)站的優(yōu)化現(xiàn)狀
- 5公司網(wǎng)站建成后應(yīng)該做些什么?
- 6電子商務(wù)網(wǎng)站的下一個掘金點-----O2O
- 7PHP Google的translate API代碼
- 8大規(guī)模網(wǎng)站架構(gòu)
- 9PhoneGap新手總是需要一些基礎(chǔ)問題的解答
- 10HTML5的呈現(xiàn)代表著新一波的Web順序辦法
- 11玩具租賃系統(tǒng)功能列表
- 12企業(yè)為什么偏愛須要專業(yè)的網(wǎng)站構(gòu)造單位做官方網(wǎng)站呢?
- 13 玩具租賃商城系統(tǒng)需求2
- 14APC(Alternative PHP Cache)是一個PHP緩存
- 15利用構(gòu)造方法實現(xiàn)模塊的解耦
- 16最新動態(tài)-久途遷新址
- 17如何讓您的網(wǎng)站盈利中發(fā)揮到極致
- 18企業(yè)如何定位自己的企業(yè)網(wǎng)站目標
- 19 企業(yè)四網(wǎng)合一網(wǎng)站升級版3
- 20網(wǎng)站策劃的重要討論
- 21租賃網(wǎng)站功能介紹
- 22網(wǎng)貸平臺主要運營模式主要有兩類---債權(quán)轉(zhuǎn)讓模式
- 23企業(yè)建站的重要性
- 24久途教你怎么樣經(jīng)營自己的網(wǎng)站
- 25企業(yè)網(wǎng)站排名要打造內(nèi)鏈
- 26MySQL InnoDB之事務(wù)與鎖詳解
- 27微信公眾平臺有什么好處
- 28久途愿景
- 29企業(yè)為什么偏愛需要資深的網(wǎng)站設(shè)計企業(yè)做官方網(wǎng)站呢?
- 30企業(yè)四網(wǎng)合一網(wǎng)站升級版1
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓