ホームページ  >  記事  >  PHPフレームワーク  >  yii2 バッチとそれぞれの違いは何ですか

yii2 バッチとそれぞれの違いは何ですか

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼オリジナル
2019-12-09 10:58:583906ブラウズ

yii2 バッチとそれぞれの違いは何ですか

私たちのデータベースは非常に大きく、クエリの結果セットも非常に大きいことが多いため、メモリを無駄に消費します。メモリ使用量を削減するために、yii2 のバッチと各メソッドを使用できます。 。

誰もがより明確に確認できるように、シナリオをシミュレートし、yii2 のデバッグを使用して、all メソッドとバッチ/各メソッドでのメモリ使用量を表示します。

準備の開始

最初にテーブルを作成します。これは非常に簡単です。

yii2 バッチとそれぞれの違いは何ですか

ご覧のとおり、主キー ID、メンバー名、ユーザー名、および州が含まれていますが、今は空になっています。

次に、ループを実行しました

set_time_limit(0);
for($i=1;$i<=10000;$i++){
    Yii::$app->db->createCommand()->insert("user",[
        &#39;username&#39;=>&#39;abei&#39;.$i,
        &#39;province&#39;=>&#39;北京市&#39;
    ])->execute();
}

実行後、データベースに 10,000 件のレコードがあることがわかり、比較を開始します。

比較

便宜上、次のコードのようにループ本体をビューに直接記述します。確実に理解できると思います。

rreeee

結果は?

yii2 バッチとそれぞれの違いは何ですか

占有メモリ 15.306MB

OK、バッチと各メモリの節約のコツを見てみましょう。

rreeee

結果は?

yii2 バッチとそれぞれの違いは何ですか

# 案の定、メモリの半分が節約されました。今では 8.077MB しか消費しません

同じ

$query = new \yii\db\Query();
$query->from(&#39;user&#39;);
foreach($query->all() as $user){
    echo $user[&#39;username&#39;];
    echo "<br/>";
}

それぞれのパフォーマンスも非常に優れています

yii2 バッチとそれぞれの違いは何ですか

結果

すべてのデータまたは大きなバッチのデータを一度に読み取る必要がある場合は、batch と each の使用を検討できます。この少しのコード最適化により、メモリの半分を節約できます。

PHP 中国語 Web サイトには、無料の Yii 入門チュートリアル が多数あり、誰でも学習することができます。

以上がyii2 バッチとそれぞれの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。