PHP で大量のデータをクエリする際のメモリ不足の問題の解決策
この記事では主に、PHP で大量のデータをクエリする際のメモリ不足の問題の解決策を詳しく紹介します。興味のある方は参考にしてください。ヒント
:PHP 致命的なエラー: 許容メモリ サイズ 268 435 456 バイトが使い果たされました
この問題は、PHP の公式 Web サイトでは、バッファリングされたクエリとバッファリングされていないクエリと呼ばれています。 PHP のデフォルトのクエリ モードはバッファ モードです。つまり、クエリ データの結果は、PHP プログラムによる処理のために一度にメモリに抽出されます。これにより、PHP プログラムに行数のカウント、特定の行へのポインタの指示などの追加機能が与えられます。さらに重要なことは、プログラムがデータ セットに対して二次クエリとフィルタリング操作を繰り返し実行できることです。ただし、このバッファー クエリ モードの欠点は、メモリを消費すること、つまり、速度と引き換えにスペースを消費することです。
対照的に、別の PHP クエリ モードはバッファなしクエリであり、データベース サーバーはデータを一度に返すのではなく 1 つずつ返します。その結果、PHP プログラムが消費するメモリは少なくなりますが、データベースへの負荷は増大します。これは、すべてのデータがフェッチされるまで、データベースが PHP によるデータのフェッチを待機するためです。
明らかに、バッファー クエリ モードは少量のデータ量のクエリに適しており、非バッファー クエリは大量のデータ量のクエリに適しています。
PHP のバッファー モード クエリについては誰もが知っています。以下に示す例は、非バッファー クエリ API を実行する方法です。
非バッファリング クエリ方法 1:mysqli
<?php $mysqli = new mysqli("localhost", "my_user", "my_password", "world"); $uresult = $mysqli->query("SELECT Name FROM City", MYSQLI_USE_RESULT); if ($uresult) { while ($row = $uresult->fetch_assoc()) { echo $row['Name'] . PHP_EOL; } } $uresult->close(); ?>
pdo_mysql
りー
mysql
<?php $pdo = new PDO("mysql:host=localhost;dbname=world", 'my_user', 'my_pass'); $pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false); $uresult = $pdo->query("SELECT Name FROM City"); if ($uresult) { while ($row = $uresult->fetch(PDO::FETCH_ASSOC)) { echo $row['Name'] . PHP_EOL; } } ?>
以上がこの記事の全内容です。皆様の学習に役立つことを願っています。
関連する推奨事項:
以上がPHP で大量のデータをクエリする際のメモリ不足の問題の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
