数据库的索引与主键

首先提出问题:

1、CLUSTER是什么,主键是聚集索引吗?

2、提高数据库查询性能,分区中的数据分布怎么理解

3、主键与索引在各类数据库中的使用

其次解决问题

1、主键完整名称是“主键约束”,所以是约束的一种,再看定义:数据库特定列或特定一组列有唯一值就是主键的作用。但是创建表时可以根据指定CLUSTERED 和 NOTCLUSTERED来指定是否聚集索引

聚集索引:

    一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序(我们把这种正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”。
 聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。

     聚集索引对于那些经常要搜索范围值的列特别有效。使用聚集索引找到包含第一个值的行后,便可以确保包含后续索引值的行在物理相邻。例如,如果应用程序执行 的一个查询经常检索某一日期范围内的记录,则使用聚集索引可以迅速找到包含开始日期的行,然后检索表中所有相邻的行,直到到达结束日期。这样有助于提高此 类查询的性能。同样,如果对从表中检索的数据进行排序时经常要用到某一列,则可以将该表在该列上聚集(物理排序),避免每次查询该列时都进行排序,从而节 省成本。

非聚集索引

  一种索引,该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同。

引用深入浅出理解索引结构
2、分区知识

2.1 范围分区就是对数据表中的某个值的范围进行分区,根据某个值的范围,决定将该数据存储在哪个分区上。例如按数值、时间来分区。说明:数据中有空值,Oracle机制会自动将其规划到maxvalue的分区中。

2.2 散列分区是根据字段的hash值进行均匀分布,尽可能的实现各分区所散列的数据相等,会变化。

2.3 列表分区明确指定了根据某字段的某个具体值进行分区,而不是像范围分区那样根据字段的值范围来划分的。

2.4 复合分区:范围散列、范围列表。https://blog.csdn.net/tanzuai/article/details/42494705

3、oracle数据库、DM数据库创建主键后不能再创建唯一索引,SQLServer创建主键后可以在相同列上创建唯一索引;

一张表只能同时拥有一个聚集索引,很珍贵;

    原文作者:xuanfengbo
    原文地址: https://blog.csdn.net/xuanfengbo/article/details/115865757
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞