SuperAPI AI 工具集

mysql-patterns

数据与分析

查看项目

更新于 10-16 09:11

技能介绍

用途

MySQL Patterns 是一份 MySQL 最佳实践的速查参考,用于在编写 SQL 查询或迁移、设计数据库表结构、排查慢查询、设置连接池以及实现多租户隔离时快速查阅常见模式。它定位为速查表(Quick Reference),需要更详细的指导时可使用配套的 mysql-database-reviewer 智能体进行完整数据库审查工作流。适用于 MySQL 5.7+ / 8.0+。

主要能力

索引速查

按查询模式给出对应索引类型与示例:等值查询(WHERE col = value)和范围查询(WHERE col > value)使用默认 B-tree;多条件组合(WHERE a = x AND b > y)使用复合索引;全文检索 MATCH(...) AGAINST(...) 使用 FULLTEXT;长字符串前缀使用前缀索引;地理数据使用 SPATIAL 索引。

数据类型速查

给出推荐与应避免的类型对照:ID 使用 bigint unsigned,避免 int 或以随机 UUID 作主键;业务编码使用 varchar(64);字符串使用 varchar(n);时间戳使用 datetime,避免 timestamp(2038 问题);金额使用 decimal(10,2),避免 float / double;标志位使用 tinyint;状态使用 tinyint,避免 enum(难以修改);JSON 数据使用 json,避免用 text 存结构化数据。

常见 SQL 模式

包括:复合索引顺序(等值列在前、范围列在后,示例索引 idx_status_created 仅在 status 或 status+created_at 条件下生效);长字符串前缀索引(如 url(100));通过生成列加索引处理 JSON(attributes->>'$.brand' STORED);UPSERT(ON DUPLICATE KEY UPDATE);游标分页(WHERE id > ? ORDER BY id LIMIT 20,相较 OFFSET 为 O(1));MySQL 8.0+ 基于 FOR UPDATE SKIP LOCKED 的队列处理;批量插入以减少往返次数。

反模式检测

提供可直接运行的诊断 SQL:查找没有主键的表;通过 performance_schema 查找慢查询(AVG_TIMER_WAIT > 100ms);通过 sys schema 查找未使用索引和冗余索引;检查表碎片(data_free)。

配置模板

包含连接数限制(max_connections、max_user_connections)、超时设置(wait_timeout、interactive_timeout、max_execution_time)、慢查询日志(slow_query_log、long_query_time、log_queries_not_using_indexes),以及 InnoDB 建议(innodb_buffer_pool_size 约为内存 70%、innodb_log_file_size = 256M、innodb_flush_log_at_trx_commit = 1)。

建表模板与 EXPLAIN 分析

给出含自增主键、业务编码、状态、五个审计字段(created_at、updated_at、created_by、updated_by、deleted_at 软删除)、唯一键与索引,使用 InnoDB 与 utf8mb4 的建表模板。EXPLAIN 分析列出问题指标与解决方向:type: ALL(全表扫描,需加索引)、type: index(全索引扫描,检查 WHERE)、Using filesort(排序未走索引,为 ORDER BY 加索引)、Using temporary(临时表,优化 GROUP BY)、rows 偏高(选择性差,检查条件)。

使用方式与适用场景

按需查阅上述速查段落,在编写查询、建表、优化索引与排查性能问题时套用对应模式;将反模式检测 SQL 用于巡检,将配置模板与建表模板用于初始化规范。配套的 mysql-database-reviewer 智能体可承接更完整的数据库审查流程。

限制

资料未提供具体安装命令、价格或授权信息,暂未提供。内容为速查性质,深度问题需结合配套智能体或进一步资料。