首先,我不知道这实际上会对性能产生多大的影响,无论是正面还是负面,也从未衡量过。
也就是说,您可以将所有 CRUD 调用包装在一个事务中,以最大限度地减少打开和关闭的数据库连接。如果某些记录导致新数据集出现问题,这还可以通过回滚更改来帮助您维护引用完整性。
# Load all DB Models, to ensure they are available before first time import
Rho::RHO.load_all_sources();
# Get instance of DB to work transactions with
db = ::Rho::RHO.get_db_partitions()['local'] # Get reference to model db
db.start_transaction() # BEGIN transaction
... Do all your create/update/deletes
if (was_import_successful)
db.commit # COMMIT transaction
else
db.rollback() # ROLLBACK transaction
end