为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:
【CPU】:
【问题描述】*:在达梦中,一张表的数据是按照聚集索引构造的B+树,建表语句中不指定聚集索引,会默认以ROWID为聚集索引。
例如:达梦测试库中DMHR.EMPLOYEE表(NOT CLUSTER KEY(“EMPLOYEES_ID”))。
有以下几个疑问:
在这样一张表中,每行数据按聚集索引ROWID组织起来的,那么,
1、普通索引保存自身值+聚焦索引值吗?
2、主键索引和聚集索引一样吗?如果不一样,主键索引中保存的是哪些数据?
聚集索引(又称为一级索引、主索引):聚集索引就是按照聚集索引键构造或者组织的一棵 B 树,表数据存储在 B 树叶子节点上,通过定位索引可直接在 B 树中找到数据。每一个表有且只有一个聚集索引。
非聚集索引(又称为二级索引、辅助索引):将二级索引列和聚集索引列共同存储在 B 树叶子节点上。如果查找非聚集索引键值或聚集索引键值可直接在 B 树中找到;如果查
找索引键值以外的数据,则需要回到一级索引中进行查找。每一个表可以有多个非聚集索引。
创建主键如果没有指定关键字cluster其实和二级索引是一致的,只不过会多创建一个虚索引来保证唯一。