索引
  aH5iJNmqbh1v 2023年11月02日 34 0
什么是索引?

索引是再数据库表上添加的,是为了提高查询效率而存在的一种机制,一张表的一个字段可以添加一个索引,当然,多个字段也可以联合起来添加索引。索引相当于一本书的目录,通过目录可以快速找到我们需要的数据。注意MySQL中的索引需要进行排序,并且这个索引的排序和TreeSet数据结构相同,MySQL中的索引是一个B-Tree数据结构。 ==注意:在任何数据库中,主键和unique约束都会自动添加索引!!任何一张表中,一行的数据在硬盘中的存储都有一个编号(内存地址),在MySQL中,索引是一个单独的对象,不同的存储引擎以不同的形式存在!== 索引的实现原理:左小右大的二叉树,先通过索引的二叉树找到编号,通过编号找到物理地址,然后直接通过物理地址定位到具体的数据。 索引添加的条件:①、数据量非常大 ②、该字段经常出现在where的后面 ③、该字段很少进行DML操作。

	#### 索引的创建和删除
-- 创建索引的语法
create index 索引名 on 表名(需要添加索引的字段);
-- 删除索引的语法
drop index 索引名 on 需要删除索引的表;
-- 查看一个SQL语句是否运用了索引进行检索
explain select* from 表名 where 条件;
索引的失效

那些会让索引失效:%开头的模糊查询、使用or的时候,or条件的两边的字段都必须有索引,不然索引失效、使用复合索引的时候没有使用左侧的列查找、在where当中索引列参加了数学运算、在where当中索引列使用了函数。

索引的分类

单一索引:一个字段上添加索引 复合索引:两个字段或多个字段添加索引 主键索引 唯一性索引 ....... 注意:唯一性比较弱的字段上添加索引用处不大,可能会存在大量的重复数据,这个时候索引就不起太大的作用。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  Dk8XksB4KnJY   2023年12月23日   15   0   0 字段字段SQLSQL
aH5iJNmqbh1v
作者其他文章 更多

2023-11-13

2023-11-12

2023-11-02

2023-11-02

2023-11-02

2023-11-02

2023-11-02

2023-11-02

2023-11-02