MySQL索引_什么是索引_索引的分类_什么时候需要/不需要创建索引_优化索引_索引失效

在这里插入图片描述

索引

1. 什么是索引

帮助存储引擎快速获取的数据的一种数据结构,是数据的目录,以空间换时间

2. 索引的分类

按数据结构分类

B+ Tree索引、HASH索引、Full-Text索引

  • 有主键,默认使用主键作为聚簇索引的索引键
  • 没有主键,选择第一个不包含NULL值的唯一列作为聚簇索引的索引键
  • 上面两个都没有的情况下,自动生成一个隐式自增id列作为…
  • 其他索引都属于辅助索引(二级索引、非聚簇索引)
  • 创建的主键索引和二级索引默认属于B+ Tree索引

例:

CREATE TABLE `product`  (
  `id` int(11) NOT NULL,
  `product_no` varchar(20)  DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `price` decimal(10, 2) DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
(id为主键)

主键索引的B+ Tree:

叶子节点存放数据,非叶子节点只存放索引,每个节点里的数据按主键顺序存放。每一个叶子节点有两个指针,分别指向下一个叶子节点和上一个叶子节点,形成双向链表

主键索引 BTree

数据库的索引和数据都存在硬盘,读取一个节点当作一次磁盘I/O操作。B+ Tree存储千万级数据只需要3-4层高度,即最多需要3-4次磁盘I/O。查询效率很高。

二级索引的B+ Tree:<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值