drogon
drogon copied to clipboard
Mapper类支持insertBatch方法吗?
我在接口参数中有个参数是一个数组,接口中需要根据数组内容更新绑定关系表的记录。所以需要批量插入数据。现在的版本好像不支持insertBatch方法,请问还有什么性能好点的批量插入数据的方法吗?
很不幸,MySql和Pg的连接库都没有提供批量插入的接口。
我用过两种方法
- 把记录变成一个json数组, 作为单一字符串参数, 然后在sql里手动展开, 例如pg的jsonb_each, jsonb_elements函数
- 打开 batch_mode, 然后循环插入
这两种方法只在pg里可用,我比较推荐方法一,方法二在错误处理上比较麻烦。
还真是不幸,是我要求太高了吗?
不算高吧, 感觉是个常规需求,但客户端库因为自身原因没实现这个接口。像ODBC是有批量接口的,虽然它很难用。