Maison >Problème commun >Comment insérer par lots dans la sélection
L'utilisation de l'instruction INSERT INTO SELECT pour l'insertion par lots peut améliorer efficacement l'efficacité de l'insertion de grandes quantités de données. Les étapes spécifiques sont les suivantes : Déterminez la taille du lot, plusieurs milliers de lignes sont recommandées. Créez une table temporaire pour stocker le sous-ensemble de données à insérer. Utilisez l'instruction INSERT INTO SELECT pour insérer des données de la table source dans la table temporaire, en utilisant la clause LIMIT pour limiter le nombre de lignes insérées à la fois. Utilisez à nouveau l'instruction INSERT INTO SELECT pour insérer des données de la table temporaire dans la table cible. Supprimez les tables temporaires qui ne sont plus nécessaires.
Comment utiliser l'instruction INSERT INTO SELECT pour l'insertion par lots
Lorsque vous devez insérer une grande quantité de données d'une table à une autre, utilisez l'option INSERT INTO SELECT
instruction pour l'insertion par lots L'insertion peut améliorer l'efficacité. Les insertions par lots sont implémentées en divisant les opérations d'insertion volumineuses en lots plus petits, réduisant ainsi la charge sur le serveur de base de données. INSERT INTO SELECT
语句进行分批插入可以提高效率。分批插入通过将大型插入操作分解成较小的批次来实现,从而减少对数据库服务器的压力。
步骤:
INSERT INTO SELECT
语句,将数据从源表插入到临时表。使用 LIMIT
子句限制每次插入的行数,以创建一个批次。<code class="sql">INSERT INTO #temp_table SELECT TOP (@batch_size) * FROM source_table WHERE NOT EXISTS (SELECT 1 FROM destination_table WHERE id = source_table.id);</code>
INSERT INTO SELECT
语句,将数据从临时表插入到目标表。<code class="sql">INSERT INTO destination_table SELECT * FROM #temp_table;</code>
<code class="sql">DROP TABLE #temp_table;</code>
优点:
注意:
IDENTITY_INSERT
INSERT INTO SELECT
pour insérer des données de la table source dans la table temporaire. Utilisez la clause LIMIT
pour limiter le nombre de lignes insérées à la fois pour créer un lot. 🎜rrreeeINSERT INTO SELECT
pour insérer des données de la table temporaire dans la table cible . 🎜 Le L'option IDENTITY_INSERT
peut provoquer des conflits de clé primaire. 🎜🎜Assurez-vous que les tables source et cible ont des schémas compatibles. 🎜🎜Surveillez le processus d'insertion pour garantir l'intégrité des données. 🎜🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!