成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓
當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 鷹潭OA > 鷹潭網(wǎng)站建設(shè)公司
PHP/MYSQL 查詢(xún)大數(shù)據(jù)
申請(qǐng)免費(fèi)試用、咨詢(xún)電話(huà):400-8352-114
鷹潭網(wǎng)站建設(shè)www.diyphp.netPHP:PHP 5.3.6 (cli) (built: Jun 15 2011 16:29:50)
MYSQL:5.1.51
若是我們有的一張表有幾百萬(wàn)或幾千萬(wàn)的記載,我們要運(yùn)用 PHP 將一切的記載都獲取過(guò)來(lái)(遍歷數(shù)據(jù)表)進(jìn)行處置。查詢(xún)句子:

SELECT * FROM largetable;
PS:為了證明上面的做法是最佳的方法,我測(cè)驗(yàn)運(yùn)用 largetable 中的一個(gè)字段做 where ,以及 LIMIT,OFFSET 。上面那種 WHERE 取得成果很慢,固然用了索引。后邊這種 LIMIT 可以讓你有一種想死的覺(jué)得(有愛(ài)好可以了解下,《分頁(yè)優(yōu)化》)。
以 MYSQL 以及PDO_MYSQL 為例,測(cè)驗(yàn)直接運(yùn)用以下代碼,必然會(huì)呈現(xiàn)超內(nèi)存的狀況:
$result = mysql_query($sql);
while ($rowset = mysql_fetch_assoc($mysql)) {
...
$stmt = $dbh->prepare($sql);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_NEXT)) {
...
緣由在于在查詢(xún)履行后,PHP 的MYSQL、PDO_MYSQL 將查詢(xún)成果悉數(shù)緩存到了客戶(hù)端,也就是 PHP 履行地點(diǎn)機(jī)器上。這樣若是我們要 SELECT * FROM LARGETABLE 查詢(xún)的記載在 百萬(wàn)以上的時(shí)分 ,緩存的成果就會(huì)非常大,超出 PHP 運(yùn)用內(nèi)存。所以為了防止這樣狀況就需要封閉客戶(hù)端的緩存。
這里供給二個(gè)測(cè)驗(yàn)?zāi)_本,分別為 MYSQL、PDO_MYSQL 封閉緩存后查詢(xún)樣例。點(diǎn)擊下載:mysql_query
以下是 PDO_MYSQL 在查詢(xún) ~100W 以及 ~200W (540M)數(shù)據(jù)成果(由于我的 PHP 內(nèi)存運(yùn)用設(shè)置了1G所以沒(méi)掛:) )
可以很明顯的看出在緩存成果后占用內(nèi)存驚人…,當(dāng)我們處置千萬(wàn)數(shù)據(jù)的時(shí)分必掛。
以下是 PDO_MYSQL 封閉緩存查詢(xún) ~200W 的數(shù)據(jù)成果。這下處置千萬(wàn)以及E級(jí)的數(shù)據(jù)的時(shí)分,對(duì)內(nèi)存表明很淡定。
PS:若是你要處置的數(shù)據(jù)就幾十萬(wàn),你仍是調(diào)大點(diǎn)內(nèi)存好了。比方 MYSQL:
mysql_unbuffered_query() 的優(yōu)點(diǎn)是有價(jià)值的:在 mysql_unbuffered_query() 回來(lái)的成果集之上不能運(yùn)用 mysql_num_rows() 和 mysql_data_seek()。此外在向 MySQL 發(fā)送一條新的 SQL 查詢(xún)之前,必須提取掉一切未緩存的 SQL 查詢(xún)所發(fā)生的成果行。
本站推薦
- 1《PHP項(xiàng)目跟蹤管理系統(tǒng)操作流程指南:高效管理項(xiàng)目進(jìn)度與團(tuán)隊(duì)協(xié)作的實(shí)用手冊(cè)》
- 2使用ThinkPHP框架構(gòu)建高效學(xué)生管理系統(tǒng)的獨(dú)特優(yōu)勢(shì)與實(shí)際應(yīng)用價(jià)值
- 3試用PHP軟件項(xiàng)目管理工具:優(yōu)化項(xiàng)目流程,提高團(tuán)隊(duì)協(xié)作效率的絕佳選擇
- 4php生產(chǎn)制造物料管理系統(tǒng)源碼含詳細(xì)注釋與高效功能示例
- 5php采購(gòu)倉(cāng)庫(kù)管理系統(tǒng)助力企業(yè)高效庫(kù)存管控與采購(gòu)流程優(yōu)化
- 6PHP打造超實(shí)用商品庫(kù)存管理系統(tǒng),高效管控庫(kù)存不是夢(mèng)!
- 7php庫(kù)存管理系統(tǒng)論文:實(shí)現(xiàn)高效庫(kù)存管控的技術(shù)方案剖析
- 8php庫(kù)存管理系統(tǒng)源碼含詳細(xì)注釋與功能擴(kuò)展教程
- 9php庫(kù)存管理系統(tǒng)教程:從搭建到高效應(yīng)用全

