ITPub博客

首页 > 数据库 > 数据库开发技术 > 【巨杉数据库Sequoiadb】【咨询】【事务】【RC】RC隔离级别

【巨杉数据库Sequoiadb】【咨询】【事务】【RC】RC隔离级别

原创 数据库开发技术 作者:CherylRAnthony 时间:2019-07-01 10:24:16 0 删除 编辑

【 问题详细 描述】
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 :<bool> 来 进 行开关。
【配置方法】
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 下 压给 存 储 引擎。
2. sdb
的 count() 接口是直接 访问计 数器的,相当于 脏读 。如果用 户 介意,就不能打开 sequoiadb_optimize_select_count 。
3.sequoiadb_optimizer_select_count
参数是内部 隐 藏参数,不 对 外开放,无相关 资 料 说 明。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69935160/viewspace-2649161/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-06-25

  • 博文量
    71
  • 访问量
    55599