MySqlBulkLoader 可以与事务一起使用吗?
MySqlBulkLoader 可以与事务一起使用吗?我没有看到一种将事务显式附加到加载器实例的方法。还有别的办法吗?
Can MySqlBulkLoader be used with a transaction? I don't see a way to explicitly attach a transaction to an instance of the loader. Is there another way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正如 MySQL 文档团队成员此处所述:
工作方法是将数据导入到专用表,然后执行 INSERT INTO ... SELECT ... 这将是原子操作。在巨大的数据集上,由于长时间的事务,这是潜在的问题。
As stated here by member of MySQL documentation team:
Work arround is to import data to dedicated table and then execute
INSERT INTO ... SELECT ...
which will be atomic operation. On huge data sets this is potential problem becasue of long transaction.MySQL 手册指出 MySqlBulkLoader 是“加载数据文件”。在查看“LOAD DATA INFILE”文档时,我注意到这一段:
我发现没有关于交易的讨论,但上面的段落表明交易是不可能的。
解决方法是将数据导入到导入表中,然后使用单独的存储过程通过事务将数据处理到所需的表中。
所以在回答
The MySQL manual indicates that the MySqlBulkLoader is a wrapper of 'LOAD DATA INFILE'. While looking at the 'LOAD DATA INFILE' documentation I noticed this paragraph:
I found no discussion on transactions but the above paragraph would indicate that transactions are not possible.
A workaround would be to import the data into a import table and then use a separate stored procedure to process the data using transactions into the desired table.
So in answ