更新时间:2025-03-17 GMT+08:00
分享

如何优化Batch Insert语句

Batch Insert语句是常见的数据库写入数据的方式,DDM兼容MySQL协议和语法,Batch Insert语法为:

INSERT [IGNORE] [INTO] table_name(column_name, ...) VALUES (value1, ...), (value2, ...), ...;

影响Batch Insert性能的主要因素包括:

- split chunk size

- 并行度

- 分片数目

- 列数目

对于并行度、分片数目、列数等内需因素,根据实际需求进行设置,并且常常会和读性能相互影响。本文主要聚焦于split chunk size的合理设置。

通过HINT修改split_chunk_size值(默认值1000)

命令格式:

/*+split_chunk_size=2000*/<INSERT VALUES的命令>

描述:

参数BATCH_INSERT_POLICY设置为SPLIT,然后通过以下示例验证split_chunk_size为2000的性能,从测试的结果来看split_chunk_size超过1000以后提升并不明显。

示例:

/*+split_chunk_size=2000*/insert into tbl(name) values("zhangsan"),("lisi")....;

DDM 3.1.5.0版本及以上支持设置BATCH_INSERT_POLICY参数,默认值为NONE,默认拆分大小为1000。

相关文档

    OSZAR »