InnoDB存储引擎索引:

B+树索引:不能找到一个给定键值的具体行,能找到的只是被查找数据行所在的页。然后把页加载到内存,在查询所要的数据。

全文索引:

哈希索引:InnoDB会根据表的使用情况自动为表生成哈希索引,不能人为的干预是否在一张表中生成哈希索引

B+树索引在数据库中的高度一般是2~4层,所以查询最多需要2到4次IO。

B+树索引分为聚集索引和辅助索引。聚集索引和辅助索引的区别是叶子节点存放的是否是一整行的信息。

聚集索引:按照每张表的主键构造一棵B+树,同时叶子节点中存放的即为整张表的行记录数据,也将聚集索引的叶子节点称为数据页。

create table t(

a int not null,

b varchar(8000),

c int not null,

primary key(a),

key indx_c(c)

)engine=InnoDB

insert into t select 1, repeat('a',7000), -1;

insert into t select 2, repeat('a',7000), -2;

insert into t select 3, repeat('a',7000), -3;

insert into t select 4, repeat('a',7000), -4;

辅助索引:叶子节点并不包含行记录的全部数据。叶子节点除了包含键值以外,每个叶子节点的索引行中还包含了一个书签。该书签用于高速存储引擎哪里可以找到与索引相对应的行数据。

举例说明,如果在一棵高度为3的辅助索引树中查找数据,那需要对这棵辅助索引树遍历3次找到指定主键,如果聚集索引树的高度同样为3,那么还需要对聚集索引树进行3次查找,最终找到一个完整的行数据所在的页,因此一共需要6次逻辑IO访问以得到最终的一个数据页。

create table t(

a int not null,

b varchar(8000),

c int not null,

primary key(a),

key indx_c(c)

)engine=InnoDB

insert into t select 1, repeat('a',7000), -1;

insert into t select 2, repeat('a',7000), -2;

insert into t select 3, repeat('a',7000), -3;

insert into t select 4, repeat('a',7000), -4;

mysql索引 聚集索引_MySql数据库索引-聚集索引和辅助索引相关推荐

  1. 数据库索引统计信息不一致_列存储索引增强功能–克隆数据库中的索引统计信息更新

    数据库索引统计信息不一致 SQL Server was launched in 1993 on WinNT and it completed its 25-year anniversary recen ...

  2. mysql的表是聚集索引组织表_Mysql的Innodb引擎索引总结

    索引的目的是什么? 答:数据库添加索引的目的是为了加快查询速度. 索引的的数据结构是什么? 答:(这里的B是balance)B+树来存储索引,B+树类似于二叉树. B+树是怎么查找数据的? 答:B+树 ...

  3. mysql数据库存储引擎和索引的描述_Mysql InnoDB引擎的索引与存储结构详解

    前言 在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的. 而MySql数据库提供了多种存储引擎.用户可以根据不同的需求为数据表选择不同的存储引擎,用户也 ...

  4. mysql数据库索引的作用_mysql数据库索引和引擎

    1. 数据库索引 1.1 索引作用 当我们在数据库表中查询数据时,若没有索引,会逐个遍历表格中的所有记录,表格中数据记录量大时很耗时.建立索引就像创建目录一样,直接通过索引找到数据存储位置,加快查找. ...

  5. mysql 数据索引使用_mysql数据库正确建立索引及使用

    普通mysql运行,数据量和访问量不大的话,是足够快的,但是当数据量和访问量剧增的时候,那么就会明显发现MySQL很慢,甚至down掉,那么就要考虑优化我们的mysql了.其中优化mysql的一个重要 ...

  6. mysql 建索引_mysql数据库正确建立索引及使用

    普通mysql运行,数据量和访问量不大的话,是足够快的,但是当数据量和访问量剧增的时候,那么就会明显发现MySQL很慢,甚至down掉,那么就要考虑优化我们的mysql了.其中优化mysql的一个重要 ...

  7. mysql第四项_mysql数据库的基本介绍与操作(第四篇-mysql索引篇)

    索引概述: 索引(也就是mysql中常说的键值key)是存储引擎用户快速找到记录的一种数据结构,这是索引的基本功能,索引对于良好的性能非常关键,尤其是当表中数据量 越来越大的时候,索引对性能的影响就越 ...

  8. mysql中组合索引创建的原则是什么意思_mysql数据库建立组合索引原则

    现实中,mysql可以根据业务需要建立组合索引,由于mysql使用B-Tree格式索引,可以直接定位记录,无需扫描.mysql建立多列索引有最左前缀的原则,即最左优先,如: 如果有一个2列的索引(co ...

  9. mysql 聚合索引和聚簇索引_MySQL 聚簇索引 和覆盖索引

    一.聚簇索引 1.聚簇索引并不是一种单独所以,而是一种数据储存方式. InnoDB 的聚簇索引实际上在同一结构中保存了B-Tree 索引和数据行. 2.当表有聚簇索引时,它的数据行实际上存放在索引的叶 ...

  10. mysql实验索引和视图_数据库实验报告 索引和视图

    数据库实验报告 索引和视图 (9页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 1西北师范大学计算机科学与工程学院学生实验报告西北师范大 ...

最新文章

  1. SAP MM 自定义条件类型出现在采购信息记录的'条件'界面里 ?
  2. 计算机考研最后四十天,2021考研最后四十天冲刺复习攻略
  3. C# 打开Word文档错误
  4. linux如何判断同名进程个数,Linux下判断是否存在多个同名进程
  5. 互联网晚报 | 3月3日 星期三 |​ 淘特宣布上线淘特10元店、淘特100;​A股三大指数集体收涨,多只地产股涨停...
  6. 默认表空间位置oracle,oracle 默认表空间
  7. .NET Web实时消息后台服务器推送技术-GoEasy
  8. 如何将示例bacpac文件导入到Azure SQL数据库
  9. 安装logstash5.4.1,并使用grok表达式收集nginx日志
  10. 五年来,开源论坛软件MyBB共修复100多个漏洞
  11. IIS7 应用程序池自动回收关闭的解决方案
  12. Atitit hi dev eff topic by use dsl sql coll op 提升开发效率sql dsl查询内存集合列表 目录 1.1. Dsl api lib 1 1.2. R
  13. 最详细的 K8S 学习笔记总结
  14. 通过 prosody 搭建 XMPP 服务器
  15. python解析mht文件_请教怎么解析.mht文件为html文件
  16. go实现dgraph的各种操作
  17. 【黑马程序员pink老师前端】CSS
  18. 什么是PWM 和PFM?
  19. SE14造成表丢失后找回数据
  20. influence究竟是可数名词还是不可数名词

热门文章

  1. FLEX:使用setTimeout,setInterval ,实现sleep功能(转)
  2. Python—实训day4—爬虫案例3:贴吧图片下载
  3. 微信小程序多选取值判断显示内容
  4. 程序员基本功01数组与内存控制
  5. oracle 11g 精简,Oracle 11g 精简客户端
  6. c语言读取acc文件的采样率,C语言文件操作:打开检查文件指针访问模式
  7. 教你实现splash欢迎页面延迟跳转的6种方法
  8. java 字节码分析_手把手带你分析Java中的Class字节码文件
  9. cocoa 调用C的静态库
  10. Linux 基础知识(九)