索引的使用

目录​​​​​​​

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.使用复合索引

MySQL 的索引是一种数据结构,用于提高数据库查询的效率。使用索引可以快速定位到特定的数据行,而不必扫描整个数据表。下面是关于 MySQL 索引使用的一些常见问题和注意事项: 1. 什么是索引索引是按照一定的规则对表的数据进行排序和组织的数据结构,以加快对数据的检索速度。它类似于书籍的目录,可以根据关键字快速找到所需的内容。 2. 如何创建索引? 在创建表时,可以指定某些列作为索引列。可以使用 CREATE INDEX 或 ALTER TABLE 命令来创建索引,也可以在创建表时使用 PRIMARY KEY 或 UNIQUE 约束来自动创建索引。 3. 为什么要使用索引使用索引可以大大提高查询的速度,尤其是在数据量较大时。它可以减少数据库查询操作需要扫描的数据量,从而缩短查询的响应时间。 4. 索引的类型有哪些? MySQL 支持多种类型的索引,包括主键索引、唯一索引、普通索引、全文索引等。每种类型的索引都有自己的应用场景和使用注意事项。 5. 如何选择合适的列创建索引? 通常情况下,选择经常被查询条件使用的列或者经常用于连接的列来创建索引是比较有效的。但是过多的索引也会增加数据更新的开销,因此需要根据实际情况进行权衡和选择。 6. 索引的优缺点是什么? 索引可以提高查询性能,但同时也会增加数据库的存储空间和维护成本。过多或不合理的索引可能导致查询性能下降、数据更新变慢等问题。因此,在创建索引时需要谨慎考虑。 这是一些关于 MySQL 索引使用的基本信息,如果你有具体的问题或者需要更详细的讨论,请提供更多上下文。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值