大型結果集循環中的PDO::fetchAll 與PDO::fetch
對於涉及大型結果集檢索的場景,會出現一個常見問題:哪種方法更有效-迴圈中的PDO::fetchAll() 或PDO::fetch()?
效能和記憶體權衡
我們最初的假設表明,PDO::fetchAll() 可能在速度方面表現出色,因為PDO 能夠同時執行多個資料庫操作,這與MySQL 的mysql_query () 不同,後者一次處理一個操作。然而,PDO 文件在這方面仍然保持沉默,假設也不充分。
為了解決這個問題,我們使用 200,000 筆記錄的資料集進行了基準測試。結果證實 PDO::fetchAll() 確實提供了更快的效能:
fetchAll : 0.35965991020203s, 100249408b fetch : 0.39197015762329s, 440b
但是,這種效能提升是有代價的。 PDO::fetchAll() 在迴圈中比 PDO::fetch() 需要更多的記憶體。
基準測試程式碼
要複製基準測試,您可以使用以下程式碼:
$dbh = new PDO('mysql:dbname=testage;dbhost=localhost', 'root', ''); $sql = 'SELECT * FROM test_table WHERE 1'; $stmt = $dbh->query($sql); // FetchAll benchmark $start_all = microtime(true); $data = $stmt->fetchAll(); $end_all = microtime(true); // Fetch loop benchmark $data = array(); $start_one = microtime(true); while($data = $stmt->fetch()){} $end_one = microtime(true);
結論
總之,在處理大型結果集時,PDO::fetchAll() 提供了效能優於迴圈中的PDO::fetch()。然而,這種改進被 PDO::fetchAll() 增加的記憶體消耗所抵消。因此,理想的選擇取決於您的應用程式的特定要求,平衡速度和記憶體使用。
以上是循環中的 PDO::fetchAll() 與 PDO::fetch():對於大型資料集,哪個更有效?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用MySQL的Alter Table語句修改表,包括添加/刪除列,重命名表/列以及更改列數據類型。

文章討論了為MySQL配置SSL/TLS加密,包括證書生成和驗證。主要問題是使用自簽名證書的安全含義。[角色計數:159]

文章討論了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比較了它們對初學者和高級用戶的功能和適合性。[159個字符]

本文討論了使用Drop Table語句在MySQL中放下表,並強調了預防措施和風險。它強調,沒有備份,該動作是不可逆轉的,詳細介紹了恢復方法和潛在的生產環境危害。

本文討論了在PostgreSQL,MySQL和MongoDB等各個數據庫中的JSON列上創建索引,以增強查詢性能。它解釋了索引特定的JSON路徑的語法和好處,並列出了支持的數據庫系統。

文章討論了使用準備好的語句,輸入驗證和強密碼策略確保針對SQL注入和蠻力攻擊的MySQL。(159個字符)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3漢化版
中文版,非常好用

Dreamweaver Mac版
視覺化網頁開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。