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

mysql中的索引怎么用?

文章目录

  • 哪几种索引
  • 哪些场景下索引可能建议创建
  • 索引什么时候失效
  • 什么是全表扫描
  • 什么是回表
  • 复合索引?
  • 其他

哪几种索引

  • 主键索引 Primary Key Index
    唯一标识表中每一行,自动添加 NOT NULL 约束,每张表只能有一个主键索引,主键索引是 聚簇索引(数据与索引存储在一起)
  • 唯一索引 Unique Index
    索引列的值唯一,但允许 NULL,适用于需要唯一性但允许空值的场景,如用户邮箱、手机号等唯一字段
  • 普通索引 Normal Index
    无任何约束,仅用于加速
  • 复合索引 Composite Index
    由多个列组成的索引,遵循 最左前缀原则

哪些场景下索引可能建议创建

  • 查询语句的高频使用的条件字段,需要加索引(索引提效)
  • 固定条件组合,以及固定查询内容,他们一起可以加复合索引(防止回表查询)
  • 依赖 order by 排序的需要加索引(防止 file sort)
  • 当查询需要依赖 group by 做分组需要加上索引(索引能加速分组操作,减少扫描全表的成本)
  • 多表关联查询时的关联字段必加索引(避免多表查询时候走了嵌套循环)

虽然写了一些大体加索引的场景,但是具体业务场景需要具体分析要不要加

索引什么时候失效

  • 函数/表达式操作列
-- 失效!对索引列使用函数
WHERE DATE_FORMAT(create_time, '%Y-%m') = '2023-10'
  • 隐式类型转换
-- 失效!user_id是VARCHAR但值用数字无引号
WHERE user_id = 123  -- 触发CAST(user_id AS SIGNED)
  • LIKE通配符前置
http://www.xdnf.cn/news/677287.html

相关文章:

  • [特殊字符]《计算机组成原理》第 8 章 - CPU 的结构和功能
  • 本地部署 DeepSeek
  • 计算机组成原理——指令的寻址方式
  • 迪米特法则 (Law of Demeter, LoD)
  • 多个vue2工程共享node_modules
  • Liunx部署ES单机集群
  • Streamlit 项目知识点总结
  • OpenCv高阶(十三)——人脸检测
  • 第二章:软盘里的90年代
  • 力扣四道题,力扣LCR 016无重复字符的最长子串力扣452.用最小数量的箭引爆气球LCR026.重排链表力扣.1765地图中的最高点
  • 猿大师办公助手WebOffice用二进制数据流在Web前端打开Office文档
  • 如何使用 Redis 实现排行榜功能
  • 中车靶场,网络安全暑期实训营
  • [特殊字符]使用 Hyperlane 实现 WebSocket广播
  • MySql(四)
  • python-自定义导包问题ModuleNotFoundError: No module named
  • Linux 文件管理相关知识与命令
  • Linux升级内核回退到旧内核启动
  • Linux 进阶命令篇
  • 广东省省考备考(第二十二天5.27)—言语(第九节课)
  • Python正则表达式:30秒精通文本处理
  • 【判断含有相同数字rfind】2022-1-28
  • 高频面试--redis
  • [yolov11改进系列]基于yolov11引入分布移位卷积DSConv的python源码+训练源码
  • AI智能体策略FunctionCalling和ReAct有什么区别?
  • 多卡训练的开源大模型,开箱即用
  • Jenkins实践(8):服务器A通过SSH调用服务器B执行Python自动化脚本
  • WSL连接网络
  • 新太空原子钟任务为全球标准化测高系统铺平道路
  • 编译原理——语法制导的语义计算