事务隔离级别数量庞大

问题描述:

我可以胡说八道,但:事务隔离级别数量庞大

哪个隔离级别是“最好的”为 地段上大量的连接运行的线程,执行大量的更新和写入使用交易? 或隔离级别只用于读取?

- EDIT DBMS ... InnoDB mysql ... best ..以及我想要的是运行写/更新的并行事务,如果例如我们在同一列上有两个更新,我做不whant得到并发性问题......

所以并行写入/更新,其所有锁定在数据库上运行 --edit 后夫妇读数得出这一结论

http://dev.mysql.com/doc/refman/5.0/en/innodb-lock-modes.html

所以更新s行锁,而不是共享锁,所以更新时应该没有问题。 但是,我们必须事先检查哪个线程来用于锁定连接.. 所以应该没有concurent更新在同一行的DATABSE ... 所以

NO:

t1 - T1: update (id 1) 
t2 - T2: update (id 1) 

一必须注意两个线程不会更新同一行......但从数据库的角度来看,只要它是InnoDB并具有最低级别的隔离级别READ_UNCOMMITED,就不应该有问题 我会在更新后提供更新几个飞蛾:D

+0

请定义“最佳”并提供有关您的DBMS的更多详细信息。 – theglauber 2012-03-01 16:12:37

+0

我编辑了这个问题,如果你有更多的问题,请不要犹豫.. – Darwly 2012-03-01 16:30:58

作为一个经验法则:隔离度越高(含义越高:隔离度越高),就会获得更多的锁和开销。所以如果你想尽可能快地和平行地走,你根本就不需要隔离。

当然这可能会破坏您的业务逻辑,所以我认为没有其他办法可以查看所有可用的隔离级别并根据您的要求进行检查。

+0

嗯..我在想更多的可重复阅读....但是你bascialy说的是,如果我使用NONE,并在应用程序中关心不更新同一个项目两次,我不应该得到问题? – Darwly 2012-03-01 16:37:17

+0

差不多。如果当你看到或看不到其他会话的部分内容时,你根本不在乎,你应该会好起来的。 – 2012-03-01 16:54:59

+0

还有一个问题:如果两个单独的线程没有隔离的两个事务写在同一个表上,但是不同的列(保存ID 2)(更新ID 1),这是否会导致问题? – Darwly 2012-03-02 08:15:56