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

PHPを使用してMySQLから19万行を取得します。空白のページですか?メモリまたはバッファ?

    コハナは別として、私はそれを使ったことがないので、あなたが現在していることは基本的にこれです:

    $result = mysql_query(...);
    $data   = array();
    while ($row = mysql_fetch_assoc($result)) {
        $data[] = $row;
    }
    

    つまりmysql_fetch_assocを使用してMySQLからすべてのデータを取得しています そして、それらをすべて$dataにプッシュして、PHPのメモリに保存します。 。つまり、PHPには、すべてのデータを一度に保存するのに十分なメモリが必要ですが、そうではありません。

    あなたがしたいのは、MySQLから1つの結果行をフェッチし、それを使って何かをしてから、すべてを一度にメモリに保存せずに次の行に移動することです。

    $result = mysql_query(...);
    while ($row = mysql_fetch_assoc($result)) {
        echo $row['foo'];
    }
    

    いいえ、非推奨のmysql_APIは使用しないでください。これはここでの最大公約数の例にすぎません。また、一度に190,000行をフェッチして出力するよりも、やりたいことを実行するためのより良い方法が必要です。



    1. 自動化されたAJAX攻撃を防ぐ方法

    2. sysrefcursorを返す関数の結果を保存する方法は?

    3. SQL Server更新クエリのif条件

    4. Eloquentを使用してオブジェクトの配列を含むjsonフィールドを検索する方法