插入1万条数据到oracle
方案一:
insert into
<foreach>
select #{} as ...
</foreacn>
这里先一万次select生成一个临时表,然后将临时表整体插入。这种方式速度最快。
但是,这样会产生一个一万行的超长SQL,公司规范不允许。
方案二:
使用oracle的 insert all 语句
insert all
<foreach>
into tbl(...) values(...)
</foreacn>
这个速度也很快,但是没有方案一快。
这样也会产生一个一万行的超长SQL,公司规范不允许。
方案三:使用MyBatis的ExecutorType.BATCH模式
BATCH模式会产生一个一个的单行的单个SQL 然后一次批量执行。不会产生一个1万行的单个SQL。
但是 这个模式在oracle下不生效 如之奈何
【 在 townhope 的大作中提到: 】
: 插入操作,使用MyBatis的ExecutorType.BATCH模式
: 在MySQL和PGSQL下,都生效 插入1万条耗时3秒
: #1
: ...................
--
修改:townhope FROM 223.104.74.*
FROM 223.104.74.*