ibatis批处理和把批量数据拼成一条sql语句,哪个效能更好?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ibatis批处理和把批量数据拼成一条sql语句,哪个效能更好?相关的知识,希望对你有一定的参考价值。

我看到ibatis批量操作的时候,有批处理功能,但在这之前,我都会将批量数据拼成一条语句,比如 update table set a=1 where id=1 or id=2 or ... or id=1000这样,我想问一下两种批量数据更新方式哪一个效能更好呢?我用的mysql数据库。

效率应该一样的,他也会把sql拼成你这样。
只要你xml写的语法能够解析成你写的sql一样,就是一样的效率。

既然效率一样,那还是建议你,该用ibatis处理的东西就用他。因为扩展性、可读性也很重要。
参考技术A 批处理的意思是多条sql只需要创建一次数据库连接就能处理多条sql语句,节约的是创建数据库连接的这部分消耗。你给的例子与不算批处理。

数据库中我想要批量插入数据SQL语句怎么写。

参考技术A 批量插入不要用循环,直接sql语句就可以了:
insert
into
table
(`field`,
`field2`)
values
('val',
'val2'),
('v2',
'v3');
这样就可以了,上面的sql批量了2条,以此类推,中间隔半角逗号即可。
我就晕了,你不会用程序处理啊,用一个array_map然后implode不久可以了吗?

以上是关于ibatis批处理和把批量数据拼成一条sql语句,哪个效能更好?的主要内容,如果未能解决你的问题,请参考以下文章

SQL 把查出来的结果,拼成一列

请教iBatis批量插入数据问题

两条mybatis sql语句第二条要用到第一条查出来的数据进行模糊查询 怎么整合成一条

最近用MyBatis做开发的时候发现,MyBatis有个小小的缺点,不支持批量update?

最近用MyBatis做开发的时候发现,MyBatis有个小小的缺点,不支持批量update?

使用“一条”SQL语句完成批量插入和批量删除操作