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

MySqL-day4_03(索引)

索引-index

  • 一、创建索引
  • 二、查看索引
  • 三、删除索引
  • 四、索引优缺点


一、创建索引

create index 索引名称 on 表名(字段名称(长度));
  • 如果指定字段是字符串,需要指定长度,建议长度与定义字段时的长度一致。
  • 字段类型如果不是字符串,可以不填写长度部分。

例 1:为表 students 的 age 字段创建索引,名为 age_index。

create index age_index on students (age);

例 2:为表 students 的 name 字段创建索引,名为 name_index。

create index name_index on students (name(10));

▲ 索引的调用
索引的调用是数据库自动完成的,不需要我们在 SQL 语句中显式专门的指令来 “调用” 索引。
当你执行查询语句时,数据库的查询优化器会自动判断是否可以使用已有的索引来加速查询,并选择最合适的索引执行。
在这里插入图片描述
(这里会自动调用 age_index)


二、查看索引

show index from 表名;

例 1:查看 students 表的所有索引

show index from students;

这条命令会返回一个详细的列表,其中几个关键列的含义是:

  • Key_name: 索引的名称。
  • Column_name: 被索引的列名。
  • Non_unique: 1 表示非唯一索引(允许重复值),0 表示唯一索引(不允许重复值)。
  • Key_len: 索引使用的字节数。
  • Index_type: 索引的类型,如 BTREE (最常见)。

三、删除索引

DROP INDEX 索引名称 ON 表名;

例 1:删除 students 表的索引 age_index

DROP INDEX age_index ON students;

四、索引优缺点

优点 ✅

  • 极大提升查询速度:这是最主要的优点。当你查询 WHERE age = 20 时,数据库可以直接去 “目录”(索引)里找,而不用一本本翻书(全表扫描)。
  • 加速关联查询(JOIN):当两张表通过某个字段关联时,在关联字段上建立索引可以显著提高连接效率。
  • 保证数据唯一性:通过创建 唯一索引(UNIQUE INDEX),可以强制要求某列的值不重复,这是实现数据完整性的一种方式。
  • 优化排序和分组:如果 ORDER BY 或 GROUP BY 的字段上有索引,数据库通常可以直接利用索引的有序性来完成操作,避免了额外的排序开销。

缺点 ❌

  • 减慢写入速度:每次执行 INSERT, UPDATE, DELETE 操作时,数据库不仅要修改数据,还要同步更新相关的索引文件,这会带来额外的开销。
  • 占用磁盘空间:索引本身也是一种数据结构,需要占用额外的存储空间。一张表上的索引越多,占用的空间就越大。
  • 并非万能:不是所有查询都能用到索引。例如,对索引列使用函数、进行模糊查询(如 %keyword)等情况,可能会导致索引失效。
http://www.dtcms.com/a/394047.html

相关文章:

  • Vue 深度选择器(:deep)完全指北:从“能用”到“用好”
  • [Nodejs+LangChain+Ollama] 1.第一个案例
  • 设计模式2.【备忘录模式】
  • Spring Boot 入门:快速构建现代 Java 应用的利器
  • Redis 实例 CPU 飙高到 90%,如何排查和解决?
  • 中国女篮备战全运会,宫鲁鸣重点培养年轻核心
  • 【Qt】常用控件1——QWidget
  • 9.21关于大模型推理未来的思考
  • 如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘uvicorn’ 问题
  • 变分自编码器(VAE):生成模型的另一条技术路线
  • 【LVS入门宝典】LVS NAT模式实战指南:ip_forward、iptables与SNAT、DNAT规则配置详解
  • 【Android】BottomSheet的三种使用
  • Spring MVC 九大组件源码深度剖析(八):RequestToViewNameTranslator - 视图名转换的奥秘
  • 在Linux环境下安装和卸载DMETL5数据迁移工具
  • 《计算》第五六章读书笔记
  • daily notes[47]
  • 模电基础:放大电路的分析方法---图解法
  • Windows10系统Web UI自动化测试学习系列1--介绍(序章-万事开头难)
  • 安装vllm的艰苦过程
  • 探索 Event 框架实战指南:微服务系统中的事件驱动通信:
  • FPGA超高速接口GTP_GTY_GTX使用说明
  • Blender常用第三方插件总结
  • Kurt-Blender零基础教程:第2章:建模篇——第3节:陈列/父子级/蒙皮/置换修改器与小狐狸角色建模
  • npm启动项目报错“无法加载文件……”
  • 从 0 到 1 精通 Nacos:服务发现与配置中心的实战指南
  • 基于DrissionPage的趣易百影院数据采集实战指南
  • github十大开源FPGA项目
  • R语言 csv新增一列 dplyr操作
  • IDEA创建Module子项目后,只有一个普通的文件夹
  • 支持向量机深度解析:从数学原理到工程实践的完整指南