mcpField
T
tidb-sql

tidb-sql

github.com/pingcap数据与数据库2767 次安装10 周前更新
代码仓库

关于 tidb-sql

tidb-sql 是一项面向 TiDB 的技能,帮助编写和排查符合其兼容性限制的 SQL。它涵盖引擎与版本确认、MySQL 兼容性检查及 TiDB 原生诊断。

主要功能

  1. 01确认 TiDB 引擎与版本
  2. 02采用 TiDB 安全默认写法
  3. 03检查 MySQL SQL 兼容性
  4. 04使用 EXPLAIN 诊断查询
  5. 05查阅 TiDB 功能参考

适用场景

  1. 01为 TiDB 数据库编写 SQL
  2. 02将现有 MySQL 查询适配 TiDB
  3. 03排查慢查询或失败的 SQL

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pingcap/agent-rules --skill tidb-sql

安装后在 Claude Code 中输入/tidb-sql确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
auto-random.md
explain.md
flashback.md
full-text-search.md
mysql-compatibility-notes.md
tidb-cloud-ssl.md
transactions.md
vector.md
scripts/
render_dot_png.sh

详细介绍

TiDB SQL(侧重 MySQL 兼容性)

目标:默认生成可在 TiDB 上正确运行的 SQL,并避免“在 MySQL 上可用但在 TiDB 上出错”的写法。

工作流(每次都使用)

  1. 确定目标引擎和版本:
    • 运行 SELECT VERSION();
    • 如果结果中包含 TiDB,则将其视为 TiDB 并解析版本(用于 Vector / Foreign Key 等功能门控)。
    • 如果连接到 TiDB Cloud,请确保客户端启用 SSL,并进行证书 + 身份验证(参见 skills/tidb-sql/references/tidb-cloud-ssl.md)。
  2. 如果请求依赖以下能力,请先问 2 个快速问题:
    • “你有 TiFlash 吗?”(向量索引需要)
    • “这个 TiDB Cloud Starter/Essential 是否位于支持全文搜索的区域?”(可用性有限)
  3. 使用 TiDB 安全默认值生成 SQL:
    • 避免不支持的 MySQL 功能(存储过程/触发器/事件/UDF/GEOMETRY/SPATIAL 等)
    • 将视图视为只读
    • 将主键变更视为迁移/重建工作
  4. 如果用户提供的是 MySQL SQL,请做一次兼容性检查:
    • 将不支持的功能替换为 TiDB 替代方案
    • 明确指出行为差异和版本前提条件
  5. 如果 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