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_QUERY, false);
---------------------------------------
■ITとことんのトップページ
┗■PHPのトップページ
┗■本ページ