当前位置: 首页 > backend >正文

【mysql】联合索引和单列索引的区别

区别核心:联合索引可加速多个字段组合查询,单列索引只能加速一个字段。


🔹联合索引(复合索引)

INDEX(col1, col2, col3)
  • 适用范围:

    • WHERE col1 = ...

    • WHERE col1 = ... AND col2 = ...

    • WHERE col1 = ... AND col2 = ... AND col3 = ...

    • WHERE col2 = ... ❌ 不命中(跳过前缀

    • WHERE col1 = ... AND col3 = ... ❌ 也不命中

  • 优势:

    • 一次命中多个字段,节省多次回表。

    • 如果查询字段包含索引中所有字段(覆盖索引),可避免回表。


🔹单列索引

分别建:

INDEX(col1)
INDEX(col2)
INDEX(col3)
  • 适用范围:

    • WHERE col1 = ...

    • WHERE col2 = ...

    • WHERE col1 = ... AND col2 = ... → 需要 MySQL 多索引合并,效率不如联合索引。


✅总结:

区别联合索引单列索引
优化多字段查询✅ 高效,顺序影响生效❌ 弱,依赖合并算法
顺序要求✅ 有严格的最左匹配原则❌ 无顺序要求
存储空间占空间更少多个索引重复记录更多
回表次数✅ 可减少回表(覆盖索引)❌ 查询字段多时需回表多次

结论:

  • 多字段常组合查询 → 联合索引

  • 单字段经常独立查询 → 单列索引

  • 查询中字段顺序固定 → 联合索引优先

  • 字段组合不定 → 分别建单列索引(必要时)

http://www.xdnf.cn/news/13657.html

相关文章:

  • Ceph分布式存储方案
  • 比亚迪座舱接入通义大模型,未来将联合打造更多AI智能座舱场景
  • 【JUC面试篇】Java并发编程高频八股——线程与多线程
  • 各项目变更频繁时,如何保持整体稳定
  • Linux 内核学习(10) --- Linux sysfs 节点创建
  • Testbed问题记录
  • 【每日likou】704. 二分查找 27. 移除元素 977.有序数组的平方
  • Pandas:你的数据分析瑞士军刀![特殊字符]✨
  • DeepCritic: SFT+RL两阶段训练突破LLM自我监督!显著提升大模型的自我批判能力!!
  • 构建康养人才职业成长加速器 —— 智慧康养实训室虚拟仿真建设方案
  • 【笔记】NVIDIA AI Workbench 中安装 CUDA 12.9
  • 其他UML图示例,用到再学习
  • 心理学行业IP变现新趋势:创客匠人赋能个人品牌崛起
  • 去除百度AI图像中包含的水印内容
  • PocketSCP:蛋白质口袋动态时空拓扑可视化分析新方法
  • 华为云Flexus+DeepSeek征文|华为云一键部署高可用版 Dify LLM 应用开发平台实践详解
  • 训练过程中的 Loss ?
  • DeviceNet转Modbus RTU协议转换网关在石油开采行业的应用
  • 常见系统设计
  • 2024蓝桥杯C/C++ B组国赛
  • C primer plus (第六版)第七章 编程练习第4题,第5题
  • SecureRandom.getInstanceStrong() 与虚拟机的爱恨情仇
  • ImportError: cannot import name ‘PfeifferConfig‘ from ‘transformers‘【已解决】
  • 考试中关于机动车安全技术检验标准(如 GB 7258、GB 21861 等)的考核重点有哪些?
  • java单元测试写法
  • Element:Table表头全部或单个表头颜色header-row-style
  • 鸿蒙开发:DevEcoTesting中的稳定性测试
  • 【Python 算法零基础 6.贪心算法】
  • 基于51单片机和8X8点阵屏、独立按键的跳跃躲闪类小游戏
  • 在WordPress中彻底关闭生成缩略图的方法