求教:请问聚集索引和非聚集索引,各自的区别,最好能详细点,
4个回答
展开全部
在聚集索引中,数据记录的组织是按照索引中的键值连续存储的,即具有相同键值的记录存储在一起,而非聚集索引则记录的存储是随意的.
比如有模式R(A,B),数据记录有{(1,1), (2,2),(3,2), (4,1),(5,3),(6,2), (7,1)},如果在B属性上创建聚集索引,则记录按照如下方式组织:
(1,1), (4,1), (7,1),(2,2),(3,2), (6,2), (5,3),
索引结构为<索引项,指针>,则索引内容为<1,0>,<2,3>,<3,6>
这样查询B=2是就可以连续地将记录(2,2),(3,2), (6,2)取得
而如果是非聚集索引则不是按照索引属性排列元组,假设按上面的的顺序排列
索引内容为<1,{0,3,6}>,<2,{1,2,5}>,<3,{4}>
查询是需要根据指针地址逐一取出记录
聚集索引的百度百科连接如下,可以参考一下
http://baike.baidu.com/view/1028053.htm
比如有模式R(A,B),数据记录有{(1,1), (2,2),(3,2), (4,1),(5,3),(6,2), (7,1)},如果在B属性上创建聚集索引,则记录按照如下方式组织:
(1,1), (4,1), (7,1),(2,2),(3,2), (6,2), (5,3),
索引结构为<索引项,指针>,则索引内容为<1,0>,<2,3>,<3,6>
这样查询B=2是就可以连续地将记录(2,2),(3,2), (6,2)取得
而如果是非聚集索引则不是按照索引属性排列元组,假设按上面的的顺序排列
索引内容为<1,{0,3,6}>,<2,{1,2,5}>,<3,{4}>
查询是需要根据指针地址逐一取出记录
聚集索引的百度百科连接如下,可以参考一下
http://baike.baidu.com/view/1028053.htm
更多追问追答
追问
能举个简单的非聚集索引的例子,用表吧,如:
table1
id name
1 张三
2 李四
3 王五
4 马克
追答
这个表不适合,我给你换一个例子把
比如有个选课表
Sid class
1 英语
2 数据库
3 操作系统
4 数据库
5 操作系统
如果创建class上的 聚集索引,那么数据就要这样组织了,就是把相同的
Sid class 索引 (按拼音顺序)
3 操作系统 <----------操作系统
5 操作系统
2 数据库 <----------数据库
4 数据库
1 英语 <----------英语
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
聚簇索引(cluster index)是指索引项的顺序与表中记录的顺序一致的索引。
非聚簇索引,唯一索引,表明此索引的每一个索引值只对应唯一的数据记录。
非聚簇索引,唯一索引,表明此索引的每一个索引值只对应唯一的数据记录。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
聚集索引是指表中数据行的物理存储顺序与索引顺序完全相同
非聚集索引不改变表中数据物的物理存储位置,数据与索引分开存储,通过索引带有的指针与表中的数据发生联系
非聚集索引不改变表中数据物的物理存储位置,数据与索引分开存储,通过索引带有的指针与表中的数据发生联系
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2021-03-01 · MySQL开源数据库领先者
关注
展开全部
聚集索引:也称 Clustered Index。是指关系表记录的物理顺序与索引的逻辑顺序相同。由于一张表只能按照一种物理顺序存放,一张表最多也只能存在一个聚集索引。与非聚集索引相比,聚集索引有着更快的检索速度。
MySQL 里只有 INNODB 表支持聚集索引,INNODB 表数据本身就是聚集索引,也就是常说 IOT,索引组织表。非叶子节点按照主键顺序存放,叶子节点存放主键以及对应的行记录。所以对 INNODB 表进行全表顺序扫描会非常快。
非聚集索引:也叫 Secondary Index。指的是非叶子节点按照索引的键值顺序存放,叶子节点存放索引键值以及对应的主键键值。MySQL 里除了 INNODB 表主键外,其他的都是二级索引。MYISAM,memory 等引擎的表索引都是非聚集索引。简单点说,就是索引与行数据分开存储。一张表可以有多个二级索引。
关键词:爱可生、开源数据库、数据监测、数据库运维
MySQL 里只有 INNODB 表支持聚集索引,INNODB 表数据本身就是聚集索引,也就是常说 IOT,索引组织表。非叶子节点按照主键顺序存放,叶子节点存放主键以及对应的行记录。所以对 INNODB 表进行全表顺序扫描会非常快。
非聚集索引:也叫 Secondary Index。指的是非叶子节点按照索引的键值顺序存放,叶子节点存放索引键值以及对应的主键键值。MySQL 里除了 INNODB 表主键外,其他的都是二级索引。MYISAM,memory 等引擎的表索引都是非聚集索引。简单点说,就是索引与行数据分开存储。一张表可以有多个二级索引。
关键词:爱可生、开源数据库、数据监测、数据库运维
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询