mysql “索引”能重复吗?“唯一索引”与“索引”区别是什么?

mysql “索引”能重复吗?“唯一索引”与“索引”区别是什么?,第1张

一、使用不同:

主键索引是在创建主键时一起创建的,是基于主键约束而建立的,是不可以为空,也不可以重复。

唯一索是引基于唯一约束而建立的,可以为空不可以重复,主键索引本身就具备了唯一索引的功能。

二、作用不同:

唯一索引的作用跟主键的作用一样。不同的是,在一张表里面只能有一个主键,主键不能为空,唯一索引可以有多个,唯一索引可以有一条记录为空,即保证跟别人不一样就行。

比如学生表,在学校里面一般用学号做主键,身份z则弄成唯一索引;而到了教育局,他们就把身份z号弄成主键,学号换成了唯一索引。

三、定义不同:

普通索引:这是最基本的索引类型,而且它没有唯一性之类的限制。

唯一性索引:这种索引和前面的“普通索引”基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须唯一。

扩展资料:

要对一个表建立唯一索引,可以使用关键字UNIQUE。对聚簇索引和非聚簇索引都可以使用这个关键字。

例子

CREATE UNIQUE CLUSTERED INDEX myclumn_cindex ON mytable(mycolumn)

其中:CLUSTERED INDEX是用来建立聚簇索引的关键字,此语句的意思是在表mytable上的mycolumn字段上创建一个名为myclumn_cindex的聚簇索引,且为唯一索引。

参考资料来源:百度百科-唯一索引

谈点我的看法

分区表:可以想象为磁盘的多个分区一样,可以减少全盘扫描的可能。直接定位到某个分区表

类似要在电脑上找文件,直接到c盘,防止在D

E

F盘扫描一样,从而减少io压力,提升性能。在查询上分区表表现还不是十分突出,但是删除,作数据迁移的时候就很明显了。

索引:索引在查询上可以快速定位符合要求的纪录,查询通过索引,也可以防止全表扫描,类似直接定位excel里面的行号一样。但是索引维护对insert

update影响必须要考虑到

简单点理解2者区别,从数据库角度来看,分区表更侧向于片状范围划定,索引更趋向于线性定位


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7285682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存