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

查看所有标签

猜你喜欢:

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

JavaScript快速开发工具箱

JavaScript快速开发工具箱

Robin Nixon / 陈武、姚飞 / 清华大学出版社 / 2011-11 / 59.00元

《JavaScript快速开发工具箱:轻松解决JavaScript日常编程问题的100个插件工具》通透讲解100个现成的JavaScript插件,引导您使用这些利器得心应手地创建动态Web内容。《JavaScript快速开发工具箱:轻松解决JavaScript日常编程问题的100个插件工具》开篇讲解JavaScript、CSS和DOM,此后每章都列举一个完整示例,指导您将特定效果快速应用于网页。使......一起来看看 《JavaScript快速开发工具箱》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具