GBase 8a 提供了标准SQL的insert values 方式插入数据,但由于列存在小数据量磁盘IO上的先天劣势,性能很差。本文提供集中方法,可以在一定程度上提高插入性能,但如果你的数据很多,还是建议用LOAD的方式,insert如何优化也至少比load性能下降1-2个数量级以上。
如果你只有几百,几千条初始化用的,为了简化,也可以考虑如下的方案insert。
目录导航
实现方法1
如果有方法,将values部分合并成如下的样式
insert into myTable valeus (1),(2),(3),(4);
每个值之间用逗号分割,则可以作为一个SQL提交数据库执行,性能较好。
实现方法2
关闭自动提交来提高多条insert数据的性能.【
注意在V95版本里,该功能通过参数_t_gcluster_oldtransaction_support_set_autocommit控制,其默认是关闭的,需要手工打开。详情参考 GBase 8a数据库集群V95版本相对V8版本变动内容汇总
set autocommit=0
insert into myTable values (1);
insert into myTable values (2);
insert into myTable values (3);
…
commit;
set autocommit=1;