MySQL のバッチ挿入と更新を学習するためのヒントは何ですか?
MySQL は、さまざまな種類のアプリケーションで広く使用されている人気のリレーショナル データベース管理システムです。バッチ挿入とバッチ更新は、大量のデータを処理する際のデータベースのパフォーマンスを向上させるための重要な手法の 1 つです。この記事では、一般的に使用される MySQL のバッチ挿入および更新手法をいくつか紹介し、対応するコード例を示します。
1. データのバッチ挿入
INSERT INTO table_name (column1, column2, ... ) VALUES (value1, value2, ...), (value1, value2, ...), ...
たとえば、学生データの複数行を学生テーブルに挿入します。
INSERT INTO 学生 (名前、年齢、性別) VALUES ('アリス', 18, '女性'), ('ボブ', 20, '男性'), ('チャーリー', 19, '男性');
この方法は、データが既知であり、データ量が少ない状況に適しています。
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 つのテーブルからデータを選択し、それを別のテーブルに挿入する必要がある状況に適しています。テーブル。
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. データのバッチ更新
REPLACE INTO table_name (column1、column2、...) VALUES ( value1, value2, ...), (value1, value2, ...), ...
このステートメントは、まず条件を満たすデータを削除し、次に新しいデータを挿入します。更新対象のデータがすでに存在する場合は、削除して再挿入します。
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 サイトの他の関連記事を参照してください。