ホームページ  >  記事  >  データベース  >  MySQL のバッチ挿入と更新を学習するためのヒントは何ですか?

MySQL のバッチ挿入と更新を学習するためのヒントは何ですか?

王林
王林オリジナル
2023-07-30 19:57:293957ブラウズ

MySQL のバッチ挿入と更新を学習するためのヒントは何ですか?

MySQL は、さまざまな種類のアプリケーションで広く使用されている人気のリレーショナル データベース管理システムです。バッチ挿入とバッチ更新は、大量のデータを処理する際のデータベースのパフォーマンスを向上させるための重要な手法の 1 つです。この記事では、一般的に使用される MySQL のバッチ挿入および更新手法をいくつか紹介し、対応するコード例を示します。

1. データのバッチ挿入

  1. INSERT INTO VALUES ステートメントを使用して、一度に複数のデータを挿入します

INSERT INTO table_name (column1, column2, ... ) VALUES (value1, value2, ...), (value1, value2, ...), ...

たとえば、学生データの複数行を学生テーブルに挿入します。

INSERT INTO 学生 (名前、年齢、性別) VALUES ('アリス', 18, '女性'), ('ボブ', 20, '男性'), ('チャーリー', 19, '男性');

この方法は、データが既知であり、データ量が少ない状況に適しています。

  1. INSERT INTO SELECT ステートメントを使用して、別のテーブルから選択した複数のデータを一度に挿入します

INSERT INTO table_name (column1, column2, ...) SELECT column1, column2, ... FROM another_table WHERE 条件;

たとえば、テーブル A から条件を満たす複数のデータを選択し、テーブル B に挿入します。

INSERT INTO table_B (列 1、列 2 、...) SELECT 列 1、列 2、... FROM table_A WHERE 条件;

このメソッドは、条件に基づいて 1 つのテーブルからデータを選択し、それを別のテーブルに挿入する必要がある状況に適しています。テーブル。

  1. LOAD DATA INFILE ステートメントを使用して外部データ ファイルをバッチでインポートします

LOAD DATA INFILE 'file_path' INTO TABLE table_name
FIELDS TERMINATED BY ',' ENCLOSED BY '" ' LINES TERMINATED BY '
';

たとえば、csv ファイルからテーブルにデータをバッチ インポートします:

LOAD DATA INFILE '/data/students.csv' INTO TABLE Student
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '
';

この方法は、外部データ ファイルからデータをバッチでインポートする必要がある状況に適しています。 。

2. データのバッチ更新

  1. REPLACE INTO ステートメントを使用してデータをバッチで更新します

REPLACE INTO table_name (column1、column2、...) VALUES ( value1, value2, ...), (value1, value2, ...), ...

このステートメントは、まず条件を満たすデータを削除し、次に新しいデータを挿入します。更新対象のデータがすでに存在する場合は、削除して再挿入します。

  1. UPDATE ステートメントと CASE ステートメントを使用してデータをバッチで更新します

UPDATE table_name
SET column1 = CASE

            WHEN condition1 THEN value1 
            WHEN condition2 THEN value2 
            ...
         END,
column2 = CASE 
            WHEN condition1 THEN value1 
            WHEN condition2 THEN value2 
            ...
         END,
...

WHERE 条件;

たとえば、条件に基づいて学生情報をバッチで更新します。

UPDATE Student
SET age = CASE

        WHEN name = 'Alice' THEN 19 
        WHEN name = 'Bob' THEN 21 
        ...
     END,
gender = CASE 
            WHEN name = 'Alice' THEN 'female' 
            WHEN name = 'Bob' THEN 'male' 
            ...
         END

WHERE name IN ('Alice', 'Bob', ...);

このメソッドは、条件に基づいてデータを一括更新する場合に適しています。

上記は、MySQL のバッチ挿入およびバッチ更新でよく使用されるいくつかの手法であり、実際の状況に応じて適切な方法を選択して操作できます。以下は、INSERT INTO VALUES ステートメントと UPDATE ステートメントを使用して学生情報をバッチ挿入および更新するシナリオを示す包括的な例です。

-- 学生情報のバッチ挿入
INSERT INTO 学生 (名前、年齢) 、性別) VALUES
('アリス', 18, '女性'),
('ボブ', 20, '男性'),
('チャーリー', 19, '男性');

-- 学生情報のバッチ更新
UPDATE 学生
SET age = CASE

        WHEN name = 'Alice' THEN 19 
        WHEN name = 'Bob' THEN 21 
        ...
     END,
gender = CASE 
            WHEN name = 'Alice' THEN 'female' 
            WHEN name = 'Bob' THEN 'male' 
            ...
         END

WHERE name IN ('Alice', 'Bob', ...);

これらのバッチ挿入およびバッチ更新テクニックを学習して適用すると、特に大量のデータを処理する場合に、MySQL データベースの運用効率とパフォーマンスを向上させることができます。

以上がMySQL のバッチ挿入と更新を学習するためのヒントは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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