栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mysql的索引(基础)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql的索引(基础)

含义:

是帮助sql加快查找数据的数据结构。类似于新华字典的目录,方便和加快我们找到想要的数据。

使用索引:

一般用可视化操作

-- 创建索引
create [ UNIQUE | FULLTEXT ] index 索引名 on 表名字 ( 列1,...列n ) ;

-- 查看索引
show index from 表名;

-- 删除索引
drop  index  索引名  on  表名;
底层数据结构
所用数据结构       如何选择
B+Tree最常用的索引类型
Hash底层数据结构是哈希表,用于等值查询,效率比B+Tree要高
hash

BTree

B+Tree

  • 非叶子节点仅仅是起到一个索引作用【查找】
  • 所有的数据都会出现在叶子节点
  • 叶子节点构成单向链表

索引的优缺点 优点:
  1.   任意字段都可以添加索引。
  2. 可以加快数据查找速度。
缺点:
  1. 创建和维护索引需要时间
  2. 对表中数据删除、修改、增加的同时也需要对索引进行维护
  3. 索引也需要空间存储
什么时候使用索引? 什么时候使用:
  1. 作为主键的列可以使用索引(自动创建,聚集索引)
  2. 经常进行连接的列可以使用索引,主要是外键。(自动创建,普通索引)可以加快连接速度。
  3. 在经常需要查找的列使用索引,加快查找速度
  4. 在经常需要排序的列(order by)使用索引,加快排序速度
什么时候不需要使用索引:
  1. 对非常数据少的表一般不建立索引
  2. 对于很少查询的列不建立
  3. 对于数据量很少或者数据量很多重复不需要建立索引
 索引的分类 功能划分

物理分类

聚集索引和二级索引

  1. 聚集索引将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据
  2. mysql中每个表都有一个聚集索引(clustered index ),除此之外的表上的每个非聚集索引都是二级索引,又叫辅助索引(secondary indexes)。
  3. 以InnoDB来说,每个InnoDB表具有一个特殊的索引称为聚集索引。如果您的表上定义有主键,该主键索引是聚集索引。如果你不定义为您的表的主键时,MySQL取第一个唯一索引(unique)而且只含非空列(NOT NULL)作为聚集索引,InnoDB使用它作为聚集索引。如果没有这样的列,InnoDB就自己产生一个这样的ID值,它有六个字节,而且是隐藏的,使其作为聚簇索引。

  4. 案例

索引失效参考这篇文章(115条消息) mysql索引失效的常见9种原因详解_book多得的博客-CSDN博客_mysql索引失效的几种情况

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1020617.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号