1.什么是聚集索引和非聚集索引 ?(聚簇索引和非聚簇索引)

聚集还是非聚集指的是B+Tree 叶结点存的是指针还是数据记录

MyISAM索引和数据分离,使用的是非聚集索引

InnoDB数据文件就是索引文件,主键索引就是聚集索引

(1)MyISAM引擎 默认是非聚集索引

图解:在叶结点里面存储的是指向数据的指针,如叶结点5中存储的0x6A,指针指向的数据的表文件也就是数据文件,这里索引文件和数据文件是两个文件,所以说它是非聚集的。

① 非聚集索引文件存储方式

CREATE TABLE myisam_table (`id` INTEGER PRIMARY KEY,title VARCHAR(80)
) ENGINE = MYISAM;
# 非聚集索引,存储需要两个文件myisam_table.MYD数据文件和myisam_table.MYI索引文件

(2)InnoDB引擎主键索引是聚集索引

图解:叶结点即存储 主键 同时也存储 数据表里面的内容,如叶结点15, 存储主键34和数据Bob。

① 聚集索引件存储方式

CREATE TABLE innodb_table (`id` INTEGER PRIMARY KEY,`url_md5` char(32),KEY `idx_url` (`url_md5`)
) ENGINE = InnoDB;
# 聚集索引,只有一个文件innodb_table.idb,说明数据和索引存储在同一个文件

(3)InnoDB引擎辅助索引

  对于InnoDB引擎它的辅助索引,它的叶结点存储的是主键的值。然后再通过主键找到对应的数据。其实这是两个过程,这就是为什么在InnoDB引擎里面使用辅助索引要比直接使用主键索引慢一些的原因。

辅助索引先找到主键以后再根据主键找到数据

聚集和非聚集区别是在 B+Tree的叶结点存储数据还是指针 ,

MyISAM 默认使用索引是非聚集的,

InnoDB 主键索引是聚集索引

什么是聚集索引和非聚集索引 ( 或者聚簇索引和非聚簇索引 )相关推荐

  1. 一句话说清聚集索引和非聚集索引以及MySQL的InnoDB和MyISAM

    聚集索引和非聚集索引以及MySQL的InnoDB和MyISAM经常遇到有人向我咨询这个问题,其实呢,网上帖子很多,也说的都对,但是呢,看客可不一定是真的理解了.所以今天在这里用最简短的语言让你明白这些 ...

  2. mysql非聚集索引区间查询_mysql的聚集索引和非聚集索引,回表查询,索引覆盖,最左前缀原则略解...

    什么是聚集索引和非聚集索引 我们知道 Mysql 底层是用 B+ 树来存储索引的,且数据都存在叶子节点.对于 InnoDB 来说,它的主键索引和行记录是存储在一起的,因此叫做聚集索引(clustere ...

  3. 唯一聚集索引上的唯一和非唯一非聚集索引

    在上篇文章里,我讨论了唯一和非唯一聚集索引的区别.我们已经知道,SQL Server内部使用4 bytes的uniquifier来保证非唯一聚集索引行唯一.今天我们来看下唯一聚集索引上,唯一和非唯一非 ...

  4. 三、索引优化(3)聚集索引上的非聚集索引

    一.索引结构 在聚集索引上建立非聚集索引,在日常应用中经常发生. <?xml:namespace prefix="[default]" ns="http://www ...

  5. 关于SQL 数据库表中的聚集索引和非聚集索引等

    原文地址:http://www.cppblog.com/zuoyinbo/archive/2008/06/03/52075.html          1.概念          索引是在数据库表或者 ...

  6. 聚集索引和非聚集索引- -

    聚集索引和非聚集索引- - 此文章引自http://www.vckbase.com/document/viewdoc/?id=1307 1.什么是聚集索引和非聚集索引 SQL SERVER提供了两种索 ...

  7. 聚集索引与非聚集索引的总结

    一.索引简介 众所周知,索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构,SQL的主流索引结构有B+树以及Hash结构,聚集索引以及非聚集索引用的是B+树索引.这篇文章会总结SQL Se ...

  8. 复合非聚集索引里列的顺序的重要性

    当我谈论索引时,大家经常会问我在复合非聚集索引里,列的顺序是否重要?简单来说:"看情况".我们来具体看下为啥"看情况"-- 单例查找(Singleton Loo ...

  9. 聚集索引和非聚集索引实例

    create database myIndexDemo go use myIndexDemo go create table ABC ( A int not null, B char(10), C v ...

  10. SQLServer之创建非聚集索引

    开始之前 典型实现 可以通过下列方法实现非聚集索引: UNIQUE 约束 在创建 UNIQUE 约束时,默认情况下将创建唯一非聚集索引,以便强制 UNIQUE 约束. 如果不存在该表的聚集索引,则可以 ...

最新文章

  1. mysql数据库备份、恢复文档
  2. JSON进阶第二篇 AJAX方式传递JSON数据
  3. Echarts实现环形图的渐变颜色效果
  4. 如何使用SAP UI5 SDK网站查询指定控件的属性如何使用
  5. equals与hashcode的区别与联系
  6. python魔术方法由谁定义_Python的魔术方法
  7. UI实用素材|登录和个人资料界面模板
  8. 刚入行程序员,未来怎么走?
  9. P4859 已经没有什么好害怕的了
  10. Redis之Pipeline(管道)
  11. poj 1160 Post Office(DP简单题)
  12. IIS网站的应用程序与虚拟目录的区别及应用
  13. Android UI学习之EditText
  14. himawari-8卫星叶绿素a产品、_海洋卫星眼中的台风quot;海神quot;
  15. 小波去噪 语音去噪 信号小波去噪 小波基去噪 小波收缩去噪-matlab
  16. 2022新版海螺影视主题模板M3.1版本多功能苹果CMSv10后台自适应模板详解
  17. 验证码识别PaddleOCR 快速开始
  18. 《中国金融市场大变局》
  19. 剑指offer 24. 反转链表
  20. 电力系统微型计算机继电保护2018,4月全国自考电力系统微型计算机继电保护试卷及答案解析.docx...

热门文章

  1. 数据库操作(DML,DCL,DQL)
  2. webpack 代码压缩优化篇
  3. Win10巧用自带输入法轻松打出特殊字符
  4. java实用工具类——使用java代码实现ftp上传下载工具类
  5. 不可用来编辑html的文件,Word2016
  6. Java Mission Control(JMC)介绍
  7. 解决 win10飞行模式 无限自动开关 无法关闭
  8. Frame-relay帧中继网络配置手册
  9. ASP.NET Core 和 EF Core 系列教程——排序、筛选、分页和分组
  10. 程序员心中的“女神”