Room:insert(Object) 与 insert(List<Object>) 的性能

bul*_*ood 6 java database android android-room

在循环中向数据库插入对象的性能是否比插入列表的性能低?我花了很多时间在我的 DAO 中实现 insert(List) 方法,但似乎性能较差。

UPD。我在列表中实现了更高效的打包,并且 insert(List)...get(List) 方法显示出超过 10 倍的性能提升。我使用了 2-5 个对象的小列表,因此看不到性能提升

Ray*_*aga 4

insert(List) 的性能比 insert(Object) 更好。当您从循环内部调用 insert(Object) 时,必须为每次插入启动一个新事务。另一方面,当您使用 insert(List) 时,room 会启动一个事务并使用该事务插入所有行。尝试导航到生成的代码并阅读实现。