关于 tidb-sql
tidb-sql 是一项面向 TiDB 的技能,帮助编写和排查符合其兼容性限制的 SQL。它涵盖引擎与版本确认、MySQL 兼容性检查及 TiDB 原生诊断。
主要功能
- 01确认 TiDB 引擎与版本
- 02采用 TiDB 安全默认写法
- 03检查 MySQL SQL 兼容性
- 04使用 EXPLAIN 诊断查询
- 05查阅 TiDB 功能参考
适用场景
- 01为 TiDB 数据库编写 SQL
- 02将现有 MySQL 查询适配 TiDB
- 03排查慢查询或失败的 SQL
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pingcap/ agent-rules --skill tidb-sql安装后在 Claude Code 中输入/tidb-sql确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/auto-random.mdexplain.mdflashback.mdfull-text-search.mdmysql-compatibility-notes.mdtidb-cloud-ssl.mdtransactions.mdvector.mdscripts/render_dot_png.sh详细介绍
TiDB SQL(侧重 MySQL 兼容性)
目标:默认生成可在 TiDB 上正确运行的 SQL,并避免“在 MySQL 上可用但在 TiDB 上出错”的写法。
工作流(每次都使用)
- 确定目标引擎和版本:
- 运行
SELECT VERSION(); - 如果结果中包含
TiDB,则将其视为 TiDB 并解析版本(用于 Vector / Foreign Key 等功能门控)。 - 如果连接到 TiDB Cloud,请确保客户端启用 SSL,并进行证书 + 身份验证(参见
skills/tidb-sql/references/tidb-cloud-ssl.md)。
- 运行
- 如果请求依赖以下能力,请先问 2 个快速问题:
- “你有 TiFlash 吗?”(向量索引需要)
- “这个 TiDB Cloud Starter/Essential 是否位于支持全文搜索的区域?”(可用性有限)
- 使用 TiDB 安全默认值生成 SQL:
- 避免不支持的 MySQL 功能(存储过程/触发器/事件/UDF/GEOMETRY/SPATIAL 等)
- 将视图视为只读
- 将主键变更视为迁移/重建工作
- 如果用户提供的是 MySQL SQL,请做一次兼容性检查:
- 将不支持的功能替换为 TiDB 替代方案
- 明确指出行为差异和版本前提条件
- 如果 SQL 很慢或意外失败,请使用 TiDB 原生诊断:
- 使用
EXPLAIN FORMAT = "tidb_json"获取结构化计划和算子树。 - 使用
EXPLAIN ANALYZE比较estRows与actRows(它会执行查询)。 - 如果计划看起来不对,可以考虑
ANALYZE TABLE ...来刷新统计信息。
- 使用
高信号差异(请牢记)
- Vector:TiDB 支持
VECTOR/VECTOR(D)类型以及向量函数/索引;MySQL 不支持。 - 不支持 GEOMETRY/SPATIAL:避免
GEOMETRY、空间函数和SPATIAL索引。 - 不支持存储过程 / 函数 / 触发器 / 事件:将逻辑移到应用层或外部调度器。
- 全文搜索(TiDB 功能):在可用时使用 TiDB 全文搜索 SQL;不要假设 MySQL
FULLTEXT在所有地方都可用。 - 视图是只读的:不能对视图执行
UPDATE/INSERT/DELETE。 - 外键:TiDB v6.6.0+ 支持;否则,不要依赖 FK 约束执行。
- 主键变更受限:对于 PK 变更,采用“创建新表 + 回填 + 切换”。
- AUTO_RANDOM:在合适时,优先使用
AUTO_RANDOM而不是AUTO_INCREMENT,以避免写热点。 - 事务:TiDB 支持悲观和乐观模式;在应用逻辑中处理乐观
COMMIT失败。
使用这些参考资料(在本技能内)
skills/tidb-sql/references/vector.md- VECTOR 类型、函数、向量索引 DDL 和查询模式。skills/tidb-sql/references/full-text-search.md- 全文搜索 SQL 模式和可用性注意事项。skills/tidb-sql/references/auto-random.md-AUTO_RANDOM规则、DDL 模式和限制。skills/tidb-sql/references/transactions.md- 悲观与乐观模式以及会话/全局开关。skills/tidb-sql/references/mysql-compatibility-notes.md- 其他常见的“MySQL vs TiDB”差异,这些差异经常导致 SQL 出错。skills/tidb-sql/references/explain.md- EXPLAIN / EXPLAIN ANALYZE 用法、tidb_json 和 dot 格式。skills/tidb-sql/references/flashback.md- FLASHBACK TABLE/DATABASE 和 FLASHBACK CLUSTER 恢复操作手册。skills/tidb-sql/references/tidb-cloud-ssl.md- TiDB Cloud SSL 验证要求和客户端标志。
评论
支持 Markdown