【巨杉数据库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 出现脏读情况》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

基于模型的设计

基于模型的设计

2011-8 / 69.00元

《基于模型的设计:MSP430/F28027/F28335DSP篇》的最大特色就是软硬件结合,在使用最新版本Simulink的基础上,结合多型号板卡实现设计开发。书中不仅详细剖析了MSP430/F28027/F28335板卡功能,而且使用Simulink演示了从建模到模型验证、从定点设计到处理器在环、从代码生成到硬件联调等诸多方面,内容充实,确实是一本学习基于模型设计进行DSP开发的较为理想的工程......一起来看看 《基于模型的设计》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具