编辑 | blame | 历史 | 原始文档

数据库操作规则

数据库版本

  • MySQL 版本: 8.4.8
  • 注意 MySQL 8.4 的语法差异(如 GROUP BY 更严格、部分废弃函数等)

Docker 部署配置

--sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION" \
--innodb_strict_mode=OFF \
--innodb_page_size=32k \
--max_connections=1020 \
--lower_case_table_names=1 \
--innodb_buffer_pool_size=70G \
--innodb_flush_log_at_trx_commit=2 \
--innodb_log_file_size=2G \
--innodb_log_buffer_size=64M

配置说明:
- lower_case_table_names=1: 表名不区分大小写
- innodb_page_size=32k: 较大的页大小适合大数据量场景
- innodb_buffer_pool_size=70G: 缓冲池大小,建议为物理内存的 60-80%
- innodb_flush_log_at_trx_commit=2: 每秒刷写日志,性能优先(非金融场景)

规则

  • 优先使用 MySQL MCP 工具(mcp__designcomputer-mysql_mcp_server__execute_sqlmcp__designcomputer-mysql_mcp_server__get_schema_infomcp__designcomputer-mysql_mcp_server__get_table_sample)直接操作数据库,而非通过 Bash 执行 mysql 命令。
  • 查询、验证、调试数据库时,直接调用 MCP 工具执行 SQL,无需向用户输出 SQL 语句或询问是否执行。
  • 仅在以下场景输出 SQL:用户明确要求查看 SQL、需要生成 SQL 脚本文件(如迁移脚本)、MCP 工具不可用时回退到 Bash。

MCP 工具说明

工具 用途
execute_sql 执行 SQL 语句(SELECT/INSERT/UPDATE/DELETE/DDL)
get_schema_info 获取表结构信息(列名、类型、注释等)
get_table_sample 获取表数据样本(用于了解数据格式)

执行 SQL 脚本

当用户要求执行 SQL 文件时:
1. 先读取文件内容
2. 逐条执行 SQL 语句
3. 遇到错误时检查表结构,调整语句后重试
4. 汇总执行结果