SuperAPI AI 工具集

mysql

数据与分析

查看项目

更新于 10-16 03:14

技能介绍

用途:帮助对 MySQL/InnoDB 做安全、可度量的变更,覆盖表结构设计、索引、查询优化、事务与锁、运维等环节。

工作流:先定义工作负载与约束(读写比例、延迟目标、数据量、MySQL 版本、托管平台);只读取相关参考文件;提出能解决问题的最小改动并说明取舍;用 EXPLAIN、EXPLAIN ANALYZE、锁与连接指标等证据验证;生产变更需包含回滚与上线后验证。

主要能力与要点:表结构上倾向窄且单调的主键(BIGINT UNSIGNED AUTO_INCREMENT),避免随机 UUID 作聚簇主键,字符集用 utf8mb4 / utf8mb4_0900_ai_ci,优先 NOT NULL 与 DATETIME,用查找表替代 ENUM,按 3NF 规范化。索引遵循最左前缀,等值条件在前、范围/排序在后,范围谓词会中断后续列使用;二级索引隐式含主键,长字符串可用前缀索引,可通过 performance_schema 审计并删除 count_read = 0 的索引。分区适用于时序(>5000 万行)或大表(>1 亿行),需提前规划,唯一键/主键须含分区列并加 MAXVALUE 兜底。查询优化关注 EXPLAIN 中的 type: ALL、Using filesort、Using temporary,使用游标分页而非 OFFSET,避免在 WHERE 中对索引列用函数,批量插入 500–5000 行,无需去重时用 UNION ALL。事务默认 REPEATABLE READ(间隙锁),高竞争可用 READ COMMITTED,保持一致的加行顺序以防死锁,错误 1213 需退避重试,I/O 放在事务外,谨慎使用 SELECT ... FOR UPDATE。运维上尽量用在线 DDL(ALGORITHM=INPLACE),先在副本测试,调优连接池避免 max_connections 耗尽,监控复制延迟。

限制:强调以实测证据而非笼统经验法则,需注明 MySQL 版本相关行为;破坏性操作(drop/delete/truncate)须获得明确人工批准。具体参考文件与命令细节暂未提供。