【Mycat2】关于序列功能的一个 Bug

创建序列前 Mycat 的 sequences/ 目录情况:

创建一个 MySQL 生成方式的序列。

sql 复制代码
/*+ mycat:setSequence{"name":"sharding_db_not_tb111","clazz":"io.mycat.plug.sequence.SequenceMySQLGenerator"} */;

因为没有官方文档支持,起初尝试使用 dropSequencedeleteSequenceunsetSequence 注释,发现都不行。后查看 Mycat 2 源码发现确实没有设计删除序列的功能。

,

执行如下 Mycat 注释创建一个序列。

sql 复制代码
/*+ mycat:setSequence{"name":"sharding_db_not_tb111","clazz":"io.mycat.plug.sequence.SequenceMySQLGenerator"} */;

查看操作系统 Mycat 配置目录中的 sequences/ 子目录下生成了相应的配置文件。

上面说过无法通过 Mycat 语法删除这个序列,因而直接通过操作系统物理删除。可见,该配置文件已经删除了。

再次使用 Mycat 注释创建该序列。显示执行成功。

但查看存储时,却没有再次生成该配置文件。

这就很奇怪!!!

我分析怀疑是 Mycat 有缓存导致的,GC 没及时清理,导致误判该序列及配置文件已存在。

下面验证一下:

  1. 重启 Mycat 。

  2. 再次创建该序列。

  3. 查看存储,发现再次创建了该序列的配置文件。

至此,证实了我的猜测。

相关推荐
今儿敲了吗10 分钟前
数据库(四)——关系数据库SQL语言
数据库·笔记·sql
brevity_souls14 分钟前
SQL server格式化日期
运维·服务器·数据库
虹科网络安全15 分钟前
艾体宝干货|Active-Active/Active-Passive 数据库架构解析:高可用设计中的权衡与选型
数据库·数据库架构
麦聪聊数据16 分钟前
SQL与数据库开发(一):用窗口函数替代应用层的嵌套循环
数据库·sql·数据库开发
努力进修18 分钟前
连接条件下推原理与实战:解决子查询、CTE大数据量性能问题
数据库·oracle
小贺儿开发20 分钟前
Unity3D 年会抽奖工具(附体验链接)
数据库·unity·excel·人机交互·工具·抽奖·互动
imuliuliang28 分钟前
Laravel8.x核心特性全解析
数据库
lpfasd12334 分钟前
Win11笔记本睡眠唤醒致命bug:NUL设备丢失致Git等工具瘫痪
git·bug
战南诚34 分钟前
mysql的坑 - count计数
数据库·mysql
薪火铺子1 小时前
MySQL 性能优化:慢查询与索引优化实战
数据库·mysql·性能优化