加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL进阶篇 索引体系区分 B-Tree结构说明

发布时间:2022-06-28 11:48:25 所属栏目:MySql教程 来源:互联网
导读: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索引结构,即二叉树的结构。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读