sql >> データベース >  >> RDS >> Mysql

PDOがレコード数が多すぎて失敗し、クエリがバッファリングされた

    バッファリングされていないクエリを使用する場合、それは結果セットがMySQLサーバーからストリーミングされていることを意味します。したがって、(バッファリングされていない)クエリが実行される接続は、クエリの最後の行を読み取るまでビジーです。あなたの場合、接続は$MysqlConnです。 。

    (バッファリングされたクエリは、結果セット全体をphpプログラムのRAMに丸呑みし、接続を解放します。結果セット全体がRAMに収まらない場合は、バッファリングされていないクエリを使用します。)

    バッファリングされていないクエリは、使い終わったら明示的に閉じる必要があります。したがって、 closeCursor()を追加します 電話 。このように。

    while ($row = $ordStat->fetch(PDO::FETCH_ASSOC)) {
        $order_ids[] = $row['order_id'];
    }
    $ordStat->closeCursor();
    

    バッファリングされたクエリを閉じても害はありません。それは良い習慣です。




    1. SqlQueryを使用してストアドプロシージャからの複数の結果を処理する

    2. リンクサーバーでRPC出力が有効になっているかどうかを確認します

    3. MySQL:可変長のインデックスjson配列?

    4. プログラムでSQLServer接続をテストするための最良の方法は何ですか?