使用 INSERT INTO SELECT 语句进行分批插入可以有效提高大量数据插入效率,具体步骤如下:确定批次大小,建议几千行。创建临时表存储要插入的数据子集。使用 INSERT INTO SELECT 语句将数据从源表插入临时表,使用 LIMIT 子句限制每次插入的行数。再次使用 INSERT INTO SELECT 语句将数据从临时表插入目标表。删除不再需要的临时表。
如何使用 INSERT INTO SELECT 语句进行分批插入
当需要将大量数据从一个表插入到另一个表时,使用 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 怎么分批的详细内容。更多信息请关注PHP中文网其他相关文章!