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

索引的使用

目录​​​​​​​

1.使用索引

1.1自动创建索引

1.2手动创建

1.2.1 主键索引

1.2.2 唯一索引

​编辑 1.2.3 普通索引

1.2.4 创建复合索引

1.2.5 查看索引

​编辑 1.3 删除索引

1.3.1 主键索引

1.3.2 其他索引

​编辑 1.4 关于索引的注意事项(也就相当于索引的优化)

2.怎么查看有无走索引

2.1.先为学生表创建一个索引

2.1.1 创建学生表

2.1.2 查看学生表中的主键信息

2.1.3 创建复合索引

​编辑 2.3.4 查看是否使用索引

3.实际应用练习


1.使用索引

1.1自动创建索引

  • 当我们为一张表加主键约束(Primary Key),外键约束(Foreign Key),唯一约束(Unique)时,MYSQL会为对应的列自动创建一个索引
  • 如果表不指定任何约束时,MYSQL会自动为每一列生成一个索引并用ROW_ID进行标识

1.2手动创建

1.2.1 主键索引

1.2.2 唯一索引

 1.2.3 普通索引

1.2.4 创建复合索引

1.2.5 查看索引

方式一:show  keys  from  表名

 1.3 删除索引

1.3.1 主键索引

1.3.2 其他索引

 1.4 关于索引的注意事项(也就相当于索引的优化)

  • 索引创建在高频查询的列上
  • 索引需要占用额外的存储空间
  • 对表进行插入、更新和删除操作时,同时也会修改索引,可能影响性能
  • 创建过多或者不合理的索引会导致性能下降,需要谨慎选择和规划索引

2.怎么查看有无走索引

2.1.先为学生表创建一个索引

2.1.1 创建学生表

2.1.2 查看学生表中的主键信息

2.1.3 创建复合索引

创建方法: create  index index_student_sn_name on student(sn,name);

 2.3.4 查看是否使用索引

explain +语句

1.不加条件使用所有

 2.使用主键查询

3.子查询中使用索引

其中type的访问类型:

 从左至右,性能由好到差

1.All:扫描全表

2.index:扫描全部索引

3.range:扫描部分索引,索引范围扫描,对索引的扫描开始于某一点,返回匹配值域的行,常见于between、< 、> 等的查询

4.ref:使用非唯一索引或非唯一索引前缀进行查找,不是主键或不是唯一索引

5.eq_ref:唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配。常见于主键或唯一索引扫描

6.const,system:单表中最多右一个匹配行,查询起来非常迅速,例如根据主键或唯一索引查询。system是const类型的特例,当查询的表只有的情况下,使用system。

7.NULL:不访问表或者索引,直接就能得到结果,如:

3.实际应用练习

1.使用普通索引

 2.使用复合索引


http://www.mrgr.cn/news/32932.html

相关文章:

  • Hadoop的安装
  • 【推广】图书|2024新书《大模型RAG实战:RAG原理、应用与系统构建》汪鹏、谷清水、卞龙鹏等,机械工业出版社
  • CDVAE项目环境配置
  • cv环境设置
  • expressjs 如何封装接口响应数据
  • 用 HTML + JavaScript DIY 一个渐进式延迟法定退休年龄测算器
  • Linux操作系统面试题记录
  • 行阶梯形矩阵的定义,通过正例和反例说明如何判断一个矩阵是不是行阶梯形矩阵
  • iTerm2下载并配置
  • nacos适配人大金仓的数据库
  • 【BetterBench博士】2024年中国研究生数学建模竞赛 E题:高速公路应急车道紧急启用模型 问题分析
  • 【我的 PWN 学习手札】House Of Karui —— tcache key 绕过手法
  • python多继承 - 子类指定父类
  • 基于SpringBoot+Vue的考研百科网站系统
  • 线程池实现的是什么接口
  • 如何安装部署kafka
  • 色彩管理中的Gamma值的理解
  • [Redis面试高频] - zset的底层数据结构
  • 【HTTP】构造HTTP请求和状态码
  • 基于stm32物联网身体健康检测系统