PHP+MariaDBでDB連携(クエリ結果のバッファモード編)

■クエリ結果の取得方法

  • バッファモード (デフォルト)
  • 非バッファモード

 バッファモードは、クエリ結果をMariaDBからPHP側へまとめて取得する。クエリ結果が大量にある場合、PHP側(=Apache側)のメモリが一気に圧迫される。

 非バッファモードは、クエリ結果は一旦DB側にあり、少しずつ必要な分だけPHP側へ送信される。

 通常はバッファモードでコーディングし、大量のクエリが予想される場合には非バッファモードでコーディングするなどの配慮が必要。

 

 以下は、mysqli のAPI使用時に、MYSQLI_USE_RESULT を指定することで非バッファモードでクエリを発行するコード例。

if ($result $mysqli->query("SELECT * FROM City"MYSQLI_USE_RESULT)) {

 
  以下は、PDOのAPI使用時に、非バッファモードでクエリを発行するコード例。
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERYfalse);
 

 

 

---------------------------------------
 ■ITとことんのトップページ
  ┗■PHPのトップページ
    ┗■本ページ