MySQL进阶篇 索引体系区分 B-Tree结构说明
发布时间:2022-06-27 10:25 所属栏目:115 来源:互联网
导读:MySQL进阶篇 索引体系区分 B-Tree结构说明: 一、索引简介 1、基本概念 首先要明确索引是什么:索引是一种数据结构,数据结构是计算机存储、组织数据的方式,是指相互之间存在一种或多种特定关系的数据元素的集合,例如:链表,堆栈,队列,二叉树等等。 其
MySQL进阶篇 索引体系区分 B-Tree结构说明: 一、索引简介 1、基本概念 首先要明确索引是什么:索引是一种数据结构,数据结构是计算机存储、组织数据的方式,是指相互之间存在一种或多种特定关系的数据元素的集合,例如:链表,堆栈,队列,二叉树等等。 其次要清楚索引的作用:索引可以使存储引擎快速找到数据记录,这是最基本的作用,索引是对查询速度最关键的影响,良好的索引设计可以使查询的效率有质的飞越。 索引的使用:如果查询语句使用所有,MySQL会在索引的数据结构上查询,如果查询到,就返回包含该索引的数据行。 2、索引的优点 唯一或者主键索引,保证列数据的唯一性 减少数据扫描量,快速查询数据; 数据有序的索引,可以将随机IO变成顺序IO; 有效的索引查询,可以避免排序和临时表; 3、索引分类 索引的种类非常多,如何分类取决多个场景和不同的角度,常见的划分如下: 产生作用:主键索引,普通索引,非空索引,全文索引; 覆盖字段:单列索引,组合索引; 数据结构:B-Tree索引,哈希索引,R-Tree索引; 注意:索引的实现是在存储引擎层面,相同的索引在不同的存储引擎中,其实现方式可能都是不一样的。 二、索引用法详解 1、不同索引特点 普通索引 基本的索引,没有任何使用限制,主要用来加速数据查询。适合经常出现在查询条件或排序条件中的数据列。 主键索引 特殊的唯一索引,不允许有空值,在建表的时候指定主键,就会创建主键索引,MySQL中最核心的索引,大量的业务数据都是基于主键查询。 唯一索引 普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须是唯一性的。 全文索引 用于全文搜索,通过建立全文索引,基于分词的查询模式,可以极大的提升检索效率。 组合索引 创建的索引覆盖两个或者两个以上的列,适应组合查询的场景,也常用于要素验证的业务,例如判断用户身份ID,手机号,邮箱,是否为同一个用户。 2、管理索引语法 基础用户表 CREATE TABLE user_base ( id INT (11) NOT NULL AUTO_INCREMENT COMMENT '主键ID', user_name VARCHAR (20) NOT NULL COMMENT '用户名', phone VARCHAR (20) NOT NULL COMMENT '手机号', email VARCHAR (32) DEFAULT NULL COMMENT '邮箱', card_id VARCHAR (32) DEFAULT NULL COMMENT '身份编号', create_time datetime DEFAULT NULL COMMENT '创建时间', state INT (1) DEFAULT '1' COMMENT '是否可用,0-不可用,1-可用', PRIMARY KEY (`id`) ) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '用户基础表'; 创建单列索引 CREATE INDEX card_id_index ON user_base(card_id); 修改添加索引 ALTER TABLE user_base ADD INDEX state_index(state) ; 创建组合索引 CREATE INDEX bind_index ON user_base(phone,card_id); 删除索引 DROP INDEX card_id_index ON user_base ; 修改索引 MySQL不支持真正修改索引的语法规范,可以通过删除旧索引,添加新索引的方式进行操作。 3、查询索引 分析MySQL查询,多数情况下用来分析执行语句的SQL中是否使用索引,是否产生临时表等性能相关问题。 三、B-Tree索引结构 1、B-Tree索引简介 MySQL官方比较推荐的索引结构类型,在实际的数据库开发中,基于MySQL中的表结构,大部分使用的都是B-Three索引结构,即二叉树的结构。 (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读