ホームページ > データベース > mysql チュートリアル > CodeIgniter のモデル クラスはデータベースの一括挿入をどのように最適化できますか?

CodeIgniter のモデル クラスはデータベースの一括挿入をどのように最適化できますか?

Patricia Arquette
リリース: 2024-12-15 19:00:15
オリジナル
484 人が閲覧しました

How Can CodeIgniter's Model Class Optimize Bulk Database Inserts?

CodeIgniter のモデル クラスを使用した一括挿入

大量のデータをデータベースに挿入するプロセスは、時間がかかる場合があります。従来、アプローチの 1 つは、一連の個別の挿入コマンドを実行することで、非効率的でリソースを大量に消費する可能性がありました。

このプロセスを最適化するために、単一のクエリを使用して複数の行を一度に挿入できます。 CodeIgniter では、これは Model クラスを使用して実現できます。

クエリの構築

単一のクエリで複数の行を挿入する鍵は、SQL ステートメントを正しく組み立てることにあります。 。各値を長い文字列に追加する代わりに、配列割り当て関数と implode 関数を使用できます。

$data = [
    ['text' => 'foo', 'category_id' => 1],
    ['text' => 'bar', 'category_id' => 2],
    // ...
];

$sql = [];

foreach ($data as $row) {
    $sql[] = '("' . mysql_real_escape_string($row['text']) . '", ' . $row['category_id'] . ')';
}

$sql = implode(',', $sql);
ログイン後にコピー

クエリの実行

SQL ステートメントが構築されたら、Modelクラスのクエリを使用して実行できます。メソッド:

$this->db->query('INSERT INTO table (text, category_id) VALUES ' . $sql);
ログイン後にコピー

一括挿入の利点

一括挿入手法を使用すると、次のような利点があります。

  • 実行時間の短縮: 複数の挿入を 1 つのクエリに結合すると、データベースのオーバーヘッドと実行が大幅に削減されます。 time.
  • メモリ使用量の改善: 過剰なメモリを消費する可能性がある長い連結文字列の作成を回避します。
  • コードの簡略化: 複数の挿入ステートメントを統合します。単一の、より管理しやすいクエリに変換されます。

以上がCodeIgniter のモデル クラスはデータベースの一括挿入をどのように最適化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート