5.6新支持START TRANSACTION READ ONLY;只读事务。那么START TRANSACTION和START TRANSACTION READ ONLY ,两个语句没啥区别啊。session2 更新,插入,删除,提交完后,session1的会话还是以前的数据。那么,在默认隔离级别下,到底有啥区别?还有,我修改READ-COMMITTED(ORACLE的隔离级别),开启START TRANSACTION READ ONLY,session2的写操作,session1(只读事务)确能看到。

解决方案 »

  1.   

    http://dev.mysql.com/doc/refman/5.6/en/innodb-performance.html#innodb-performance-ro-txn这里
      

  2.   

    大致看了下START TRANSACTION READ ONLY的意思是数据库内部不记录sql的事务id吧 ,这样可以减小内部数据结构和并发,隔离级别级别,事务完整性什么的完全不沾边
      

  3.   

    大致看了下START TRANSACTION READ ONLY的意思是数据库内部不记录sql的事务id吧 ,这样可以减小内部数据结构和并发,隔离级别级别,事务完整性什么的完全不沾边
      

  4.   

    大致看了下START TRANSACTION READ ONLY的意思是数据库内部不记录sql的事务id吧 ,这样可以减小内部数据结构和并发,隔离级别级别,事务完整性什么的完全不沾边
      

  5.   

    能否跟ORACLE的只读事务,举例说明一下?
      

  6.   

    看这里,看的时候需要明白引入只读事务的原因,找到原因之后再去理解原因就能理解了。
    http://blogs.innodb.com/wp/2011/12/better-scaling-of-read-only-workloads/增加只读事务的目的是为了判断这个事务是否是只读的,如果是只读的,则会将这个事务放在trx_sys_t::ro_trx_list中,减少copy trx_sys_t::rw_trx_list的开销以及锁导致的速度下降问题。主要的目标是为了提高性能。