一些索引相关总结~

本文详细介绍了数据库索引的类型,包括普通索引、唯一索引、主键索引和组合索引,强调了它们的区别和作用。同时,讨论了全文索引的特性及其在实际应用中的局限性。此外,还列举了可能导致索引失效的情况,并提供了索引优化的步骤,包括使用EXPLAIN分析SQL执行计划和调整SQL语句。通过对索引的深入理解,可以显著提升数据库查询性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

22.索引的类型

单列索引:一个索引只包含单个列,但一个表中可以有多个单利索引

  (普通索引:MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复的值和空值,纯粹是为了查询效率更快一点。 唯一索引:索引列中的值必须是唯一的,但是允许为空值  主键索引:特殊的唯一索引,不允许有空值 主键约束就是一个主键索引)

组合索引:在表中的多个字段组合上创建的索引,只有在查询条件中使用了这些字段的左边字段时,索引才会被使用,使用组合索引遵循最左前缀的集合

全文索引:在大量数据中,通过其中的某个关键字,就能找到该字段所属的记录行。全文索引在开发中很少用,因为其占用很大的物理空间和降低了记录修改性。

  1. 主键索引是一种约束,唯一索引是一种索引,两者本质上是不同的
  2. 主键创建后一定包含一个唯一性索引,唯一索引不一定就是主键
  3. 唯一性索引列允许空值,而主键列不允许空值
  4. 主键可以被其他表引用为外键,而唯一索引不能)

25索引在什么情况下失效?

  对查询进行优化,尽量避免全表扫描,避免导致索引失效

  避免在where字句中使用!=,<>这样的符号,否则会导致引擎放弃索引儿产生全表扫描

  避免在where字句中使用or来连接条件,因为俩个字段中有一个没有索引的话,引擎会放弃所以而全表扫描

  避免在where字句中=的左边使用表达式操作或者函数操作

避免在where字句中使用Like模糊查询

索引优化的步骤是:

  1. 使用explain查看sql执行计划
  2. 判断哪些索引使用不当
  3. 优化sql,sql可能需要多次优化才能达到索引使用的最优值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值