跳转到主要内容

sql优化

本文档介绍如何进行sql优化

方式一: 直接提问(推荐)

此方法不需要配置数据库信息,使用方便

  1. 使用DBeaver复制需要进行优化表的的DDL
  1. 选择需要优化的sql文件,然后输入提示词 提示词示例如下,替换其中的文件名、ddl语句
@/api-test/backend/src/main/java/io/metersphere/base/mapper/ApiModuleMapper.xml 
根据ddl语句优化sql语句
ddl:
CREATE TABLE `api_module` (
`id` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT 'Test case node ID',
`project_id` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT 'Project ID this node belongs to',
`name` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT 'Node name',
`protocol` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT 'Node protocol',
`parent_id` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'Parent node ID',
`level` int DEFAULT '1' COMMENT 'Node level',
`pos` double DEFAULT NULL COMMENT 'Node order',
`create_time` bigint NOT NULL COMMENT 'Create timestamp',
`update_time` bigint NOT NULL COMMENT 'Update timestamp',
`create_user` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

方式二: 配置mcp

此方法可以不用手动复制ddl,使用mcp工具自动连接数据库、读取表结构

想了解更多查看如下文档:

  1. 配置mcp

打开友码->MCP 服务器->编辑项目MCP->编辑mcp配置->完成

配置json示例如下(注意替换其中的内容)

{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["mysql-mcp-server"],
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASSWORD": "password",
"MYSQL_DATABASE": "dbname"
},
"disabled": false,
"autoApprove": []
}
}
}

示例图如下

  1. 选择需要优化的sql文件,然后输入提示词

提示词示例如下,替换其中的文件名、数据库名、表名

@/api-test/backend/src/main/java/io/metersphere/base/mapper/ApiModuleMapper.xml 
根据数据库metersphere中表api_module的DDL语句,优化此文件的sql语句,查询DDL时使用mcp工具mysql