如何优化 MySQL 索引以提高查询性能?
MySQL 索引优化 完整总结(面试 / 实操通用,精简好背)
一、合理创建索引
高频查询字段建索引
WHERE、JOIN、ORDER BY、GROUP BY 字段优先建立索引。
选择性高的字段建索引
区分度越高(如手机号、身份证)索引效果越好;
性别、状态等低基数字段不适合单独建索引。
优先使用复合索引
多字段查询时,建立复合索引,遵循最左前缀原则。
二、遵循复合索引设计原则
等值条件放前面,范围条件放后面(= > in > like 前缀 > range)。
频繁查询字段前置,避免索引断裂。
避免冗余索引,合并重复、重叠索引。
三、避免索引失效(关键优化)
索引列不做函数、运算、类型转换。
LIKE 禁止左模糊 %xxx。
减少 !=、<>、not in、is not null。
OR 两侧字段都要有索引,否则全失效。
杜绝隐式类型转换(字符串字段加引号)。
四、优化索引字段设计
字段长度尽量小
用 tinyint、varchar (短长度),减少索引占用空间。
主键建议使用自增 int/bigint,不要用长字符串、UUID。
优先覆盖索引
查询字段全部包含在索引中,避免回表(Extra:Using index)。
五、SQL 语句优化
禁止 select *,只查需要字段,配合覆盖索引。
分页深分页优化:避免 limit 100000,10。
减少关联查询,JOIN 字段必须建立索引。
合理限制结果集,避免大结果集扫描。
六、维护与优化
定期使用 ANALYZE TABLE 更新索引统计信息。
清理无用、长期不使用的索引,减少写入开销。
大表避免频繁新增 / 删除索引,低峰期维护。
读写分离:读走索引优化,写减少索引数量。
七、限制索引数量
索引
提升查询、降低写入;
表写入频繁时,严控索引数量,防止插入 / 更新变慢。
极简背诵版
高频筛选、排序、联表字段建索引;
复合索引遵守最左前缀,等值在前、范围在后;
杜绝索引列运算、左模糊、隐式转换防止失效;
设计覆盖索引,减少回表,禁用 select *;
精简索引、删除冗余,平衡查询与写入性能。
“如何优化 MySQL 索引以提高查询性能?” 的相关文章
科技数据,本质上是通过电子设备(手机、电脑、服务器等)采集、存储、传输和处理的各类信息的集合,以二进制代码的形式存在,是数字科技的基础。与我们传统认知中的“文件”不同,科技数据的范畴更广泛,既包括我们主动创建的照片、文档、视频(主动数据),也包括设备运行时自动生成的缓存、日志、定位信息(被动数据);...
下面分手机(iOS / 安卓主流品牌)和电脑(Windows/Mac),一步步教你关闭云同步(可选择性关,也可全关),以及关闭后如何防止数据被自动恢复 / 覆盖。一、苹果手机(iPhone/iPad):关闭 iCloud 同步1)选择性关闭(推荐:只关照片 / 文档,保留联系人等)打开 设置 → 点...
下面按 “先关同步→网页端删文件→清空最近删除→清其他云数据→收尾防恢复”,把华为云盘彻底删干净,且不影响本地文件。一、手机端:先关闭所有同步(必做)打开 设置 → 华为账号 → 云空间。关闭 云盘、图库、备忘录、联系人 等所有同步开关。弹窗选 保留在本机,避免本地文件被删。关闭 自动备份、数据同步...
AI 游戏更适合鸿蒙,核心是:微内核 + 分布式 + 系统级 AI + 软硬协同,正好匹配 AI 游戏 “高实时、大算力、多设备、动态内容” 的需求,比安卓 /iOS 更贴合、更稳、延迟更低。一、底层架构:天生为高实时 AI 推理设计微内核 + 高性能调度:比宏内核(安卓)延迟更低、更稳,AI 推理...
下面我用偏工程、好落地的方式,把 “基于 AI 的智能算力调度算法(智能算力分配方法)” 讲清楚:从核心思路、主流 AI 算法、典型流程,到鸿蒙 / 端侧场景怎么用。一、问题背景:为什么要用 AI 调度算力?传统算力调度(轮询、加权轮询、静态优先级)靠人工规则,面对 AI 任务(大模型训练 / 推理...
智能算力调度算法的应用场景一、人工智能领域大模型训练与推理自动分配 CPU、GPU、NPU 资源,合理调度训练任务、文本 / 图片 AI 推理任务,避免算力拥挤,提升运行速度。端侧 AI 应用手机、平板、智能设备的 AI 拍照、语音助手、人脸识别,依靠智能调度合理分配本地算力,降低耗电、减少卡顿。二...