【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. 查看存储,发现再次创建了该序列的配置文件。

至此,证实了我的猜测。

相关推荐
轩情吖2 分钟前
MySQL初识
android·数据库·sql·mysql·adb·存储引擎
Traced back3 分钟前
【.NET7 WinForm 实战】三层架构+EF Core+多数据库+完整功能(源码+教程+脚本)
数据库·架构·.net
观测云4 分钟前
KES(KingbaseES)数据库监控最佳实践
数据库
奇点爆破XC23 分钟前
Redis迁移
数据库·redis·bootstrap
断手当码农42 分钟前
Redis 实现分布式锁的三种方式
数据库·redis·分布式
菜鸟小九1 小时前
redis原理篇(基本数据结构)
数据结构·数据库·redis
没有bug.的程序员1 小时前
电商秒杀系统深度进阶:高并发流量建模、库存零超卖内核与 Redis+MQ 闭环
数据库·redis·缓存·高并发·电商秒杀·流量建模·库存零超卖
先做个垃圾出来………1 小时前
Python常见文件操作
linux·数据库·python
轩情吖1 小时前
MySQL库的操作
android·数据库·mysql·oracle·字符集·数据库操作·编码集
LaughingZhu1 小时前
Product Hunt 每日热榜 | 2026-02-25
数据库·人工智能·经验分享·神经网络·chatgpt