codegeex可在vs code中一键完成慢sql索引优化:安装插件并启用后登录,右键执行「analyze sql」获取缺失索引提示,按where顺序自动生成create index语句,并支持explain验证索引有效性。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想在 VSCode 里把一条执行缓慢的 SQL 查询语句直接变成带索引建议和可执行建索引语句的完整优化方案,不用反复查表结构、猜字段顺序、手动拼 CREATE INDEX,也不用切出编辑器去网页端分析。
安装并启用 CodeGeeX 插件
第一步:打开 VS Code 扩展市场(Ctrl+Shift+X),搜索 CodeGeeX,安装官方版本(by Tsinghua University)→ 安装完成后重启编辑器。
第二步:点击左下角齿轮图标 → 设置 → 搜索 CodeGeeX: Enable Code Generation → 确保已勾选。未启用状态下右键菜单不会出现「Analyze SQL」选项。
第三步:必须完成登录——点击状态栏右下角 CodeGeeX 图标 → 选择「Sign in」→ 使用 GitHub 或邮箱完成认证。【未登录时所有 SQL 分析功能均返回空结果】
对慢 SQL 进行索引缺失诊断
方法一:在 SQL 文件中粘贴待分析语句(如 SELECT * FROM orders WHERE user_id = 123 AND status = 'shipped' ORDER BY created_at DESC)→ 将光标置于该行任意位置 → 右键 → 选择「CodeGeeX: Analyze SQL」。
方法二:若语句跨多行或含注释,先全选整段 SQL → 右键 → 「CodeGeeX: Analyze SQL」。等待 2~4 秒,右侧面板将弹出结构化分析报告。
注意:分析结果中若出现 “user_id + status + created_at 缺失联合索引”,说明三字段组合未被现有索引覆盖;此时需按 WHERE 条件中字段出现顺序创建索引,否则 MySQL 优化器大概率不使用。
生成可执行的建索引语句
第一步:确认分析报告中提示的字段顺序(例如 WHERE user_id = ? AND status = ? ORDER BY created_at → 顺序应为 user_id, status, created_at)→ 复制该字段序列。
第二步:在当前文件空白处输入注释:# 创建联合索引:orders(user_id, status, created_at) → 将光标停在括号末尾 → 按 Alt+\(Windows/Linux)或 Option+\(Mac)。
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
第三步:从弹出建议中选择 CodeGeeX 生成的 CREATE INDEX 语句,例如:
CREATE INDEX idx_orders_uid_status_ct ON orders(user_id, status, created_at);
这一步操作起来很简单,直接把文件拖进去就行。但必须核对表名是否与当前数据库一致——如果工作区连接的是测试库 orders_test,而语句写的是 orders,则执行会报错。
一键验证索引有效性
方法一:在生成的 CREATE INDEX 语句下方换行,输入注释:# 验证该索引是否被查询使用 → 光标停在末尾 → 按 Alt+\ → 选择 CodeGeeX 返回的 EXPLAIN 分析语句。
方法二:右键已连接的数据库 → 选择「SQLTools: Run Query」→ 粘贴原始慢 SQL → 查看执行计划中 key 字段是否显示刚创建的索引名。
若 EXPLAIN 结果中 type 仍为 ALL 或 key 为 NULL,说明索引未命中——常见原因是 WHERE 中存在函数包裹(如 WHERE DATE(created_at) = '2024-01-01')或隐式类型转换(如 status = 1 匹配 VARCHAR 字段)。
批量生成多表索引语句
第一步:在新文件中列出所有待优化表名,每行一个,例如:
orders
users
products
第二步:在顶部添加自然语言指令:# 为以下三张表分别生成最常用于 WHERE 和 ORDER BY 的联合索引,优先覆盖 user_id + status、dept_id + name、category_id + price
第三步:光标停在指令末尾 → 按 Ctrl+Enter(交互模式)→ 等待 CodeGeeX 返回三组 CREATE INDEX 语句 → 点击“Use Code”插入。
第四步:检查每条语句中的字段顺序是否与对应表的高频查询条件严格一致。【MySQL 联合索引最左前缀原则不可绕过,顺序错即失效】










