zoukankan      html  css  js  c++  java
  • 关于MYCAT 读写分离,与只读事务的问题.

    习惯性为了复用mysql连接,喜欢加上@Transactional(readOnly = true) 只读事务,很多零碎的查询下,速度会快一些,也环保一些.

    最近用mycat做了读写分离,其中一个查询加上了@Transactional(readOnly = true) ,居然出来了错误的数据,

    删除事务后,数据正确,想了半天,是否读库写库的数据可能不一致.经过比较,果然有一条数据不一致

    加上了事务以后(只读事务也是事务),MYCAT ,就一定会去查询写库.

    只读事务:以下是我方法加上(方法里执行几十次简单快速的查询)

    耗时:89880126 (纳秒),但是MYCAT会查询写库

     不使用事务注解:

    耗时:117560025(纳秒),正确查询了读库

    那么问题来了,有没有办法使用ThreadLocal里保存的Mysql连接,同时又可以让MYCAT正确的查询读库呢?

    @Transactional(propagation = Propagation.NOT_SUPPORTED)

    耗时:66755063(纳秒),正确查询了读库



  • 相关阅读:
    JAVA读取properties
    nginx默认语法
    csp-s模拟45
    csp-s模拟44
    noip模拟测试42
    noip模拟测试40
    noip模拟测试21
    noip模拟测试20
    noip模拟测试19
    noip模拟测试18
  • 原文地址:https://www.cnblogs.com/sweetchildomine/p/7544733.html
Copyright © 2011-2022 走看看