【巨杉数据库Sequoiadb】【咨询】【事务】【RC】RC隔离级别,在 mysql 执行 count 出现脏读情况

栏目: 数据库 · Mysql · 发布时间: 6年前

内容简介:【问题详细描述】SequoiaDB 开启事务,事务级别为 RC,在 Mysql 执行 count 出现脏读情况,具体操作如下:1.开启事务,隔离级别为 RC;

【问题详细描述】

SequoiaDB 开启事务,事务级别为 RC,在 Mysql 执行 count 出现脏读情况,具体操作如下:

1.开启事务,隔离级别为 RC;

2.执行 select count(*) from x1 获取记录数;

3.再次插入记录;

4.再次执行步骤2;

步骤4发现 count 返回新插入的记录数,出现脏读问题。

详情见附件 mysql-1/2/3/4.png

【解决办法】

1.当前版本(v3.2.1)的 quick count 机制确实是脏读的,只是临时用于 count 无条件时快速返回结果。

2.目前 quick count 是通过 sequoiadb_optimize_select_count 参数打开的特殊优化,可以通过隐藏的系统参数: sequoiadb_optimize_select_count : 来进行开关。

【配置方法】

1.非持久化生效方式

mysql> set global sequoiadb_optimizer_select_count=OFF;

重启 mysql 参数会恢复成默认值 ON。

2、持久化生效方式

修改 database/<实例>/auto.cnf 配置文件,在 [mysqld] 模块配置 sequoiadb_optimizer_select_count=OFF,修改后执行 bin/sdb_sql_ctl restart <实例名> 重启实例生效。

【注意事项】

1.带有过滤条件的 select count(*) from table where .... 语句还是原来的性能,因为 mysql 并不会把 count 下压给存储引擎。

  1. sdb 的 count() 接口是直接访问计数器的,相当于脏读。如果用户介意,就不能打开 sequoiadb_optimize_select_count 。

3.sequoiadb_optimizer_select_count 参数是内部隐藏参数,不对外开放,无相关资料说明。


以上所述就是小编给大家介绍的《【巨杉数据库Sequoiadb】【咨询】【事务】【RC】RC隔离级别,在 mysql 执行 count 出现脏读情况》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

运营攻略

运营攻略

陈辉 / 人民邮电出版社 / 2017-12 / 59

《运营攻略 移动互联网产品运营提升笔记》深入浅出地告诉大家什么是运营,梳理了移动互联网时代各类运营方向的工作重点与工作方法,结合实例指出了每类运营方向的提升要点;结合作者的亲身经历,解答了无数运营人与产品人纠结的运营与产品到底有什么异同的问题;指明了运营人的核心竞争力,并对处于不同阶段的运营人提出了相应的建议与要求;尤为难得的是,《运营攻略 移动互联网产品运营提升笔记》中还阐述了内容型产品与工具型......一起来看看 《运营攻略》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具