mysql - Perl DBI - 并行事务

标签 mysql perl transactions dbi

我有一个 perl 脚本,其中 DBI 按顺序对 MySQL 数据库中的多个表执行各种 DML 操作。

我在我的 perl 脚本中使用 dbh->begin_workeval 实现了交易。现在,我运行我的脚本一次,一段时间后我再次运行它,从而向我的数据库发起两个事务。这时,我第二次运行脚本,第一个事务已经完成了对第五个表的操作,而我的第二个事务甚至还在等待对第一个表进行操作。

我能否让脚本并行执行,以便第二个事务能够在第一个事务先于它工作时对第一个表执行操作?

最佳答案

每个数据库都有自己的事务隔离级别。阅读类似这篇文章的内容:http://www.oracle.com/technetwork/issue-archive/2005/05-nov/o65asktom-082389.html

因此,由于同时运行的事务之间的竞争条件,每个事务都可能被锁定和/或放弃。

并阅读 http://search.cpan.org/~timb/DBI-1.636/DBI.pm#Transactions无论如何都要使用 RaiseError 的章节。

关于mysql - Perl DBI - 并行事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45433920/

相关文章:

mysql - 在mysql中显示当前事件的事务

java - 为什么我需要在其中添加交易?

php - PDO 连接到数据库问题

linux - 运行以 .pl 结尾的 perl 脚本

mysql - 加入 SHOW TABLES 与数据库中的表

regex - Perl 正则表达式 : Modification of a read-only value attempted

perl - 用所有数字计算 100 阶乘

java - 事务超时 EJB 对线程的影响

mysql - 如何在mysql中存储数据,以获得最快的性能?

mysql - 我正在使用 NOT IN 但速度很慢