主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。

主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。

唯一性索引列允许空值,而主键列不允许为空值。

主键列在创建时,已经默认为非空值 + 唯一索引了。

主键可以被其他表引用为外键,而唯一索引不能。

一个表最多只能创建一个主键,但可以创建多个唯一索引。

主键和唯一索引都可以有多列。

主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等。

在 RBO 模式下,主键的执行计划优先级要高于唯一索引。 两者可以提高查询的速度。

索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。

总体来说:主键相当于一本书的页码,索引相当于书的目录。

其实主键和索引都是键,不过主键是逻辑键,索引是物理键,意思就是主键不实际存在,而索引实际存在在数据库中,主键一般都要建,主要是用来避免一张表中有相同的记录,索引一般可以不建,但如果需要对该表进行查询操作,则最好建,这样可以加快检索的速度。

转载于:https://www.cnblogs.com/linguoguo/p/10529272.html

mysql 主键和唯一索引的区别相关推荐

  1. mysql主键和唯一索引_主键和唯一索引的有什么区别

    主键和唯一索引的区别 -- 区别 主键是一种约束,唯一索引是一种索引,两者在本质上是不同的. 主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键. 唯一性索引列允许空值,而主键列不允许为空值 ...

  2. oracle中主键和唯一索引的区别说明

    上周六去参加上海Oracle WDP俱乐部沙龙的一次交流,其中提到了关于"Oracle中主键和唯一索引的区别",基本上大家都可以说上几个,在网上也可以找到,但是总感觉不太全,根据自 ...

  3. mysql主键和唯一索引_mysql 主键和唯一索引的区别

    主键是一种约束,唯一索引是一种索引,两者在本质上是不同的. 主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键. 唯一性索引列允许空值,而主键列不允许为空值. 主键列在创建时,已经默认为非空 ...

  4. 主键和唯一索引的区别

    原文地址:http://blog.csdn.net/baoqiangwang/article/details/4832814 主键是一种约束,唯一索引是一种索引,两者在本质上是不同的. 区别 1. 主 ...

  5. 主键 和 唯一索引 的区别

    主键是一种约束: 唯一索引是一种索引 主键创建后一定包含一个唯一索引:但唯一索引不一定是主键 主键不允许空值:唯一索引允许(唯一索引中null表示没有. 如果有,则唯一)

  6. Oracle中主键和唯一索引的区别oracle中联合主键的作用

    在创建主键的同时会生成对应的唯一索引,主键在保证数据唯一性的同时不允许为空, 而唯一索引可以有一个为空的数据项,一个表中只能有一个主键,但是一个主键可以有多个字段,一个表中可以有多个唯一索引. 联合主 ...

  7. 主键与唯一索引的区别

    1.主键一定是唯一性索引,唯一性索引并不一定就是主键: 2.一个表中可以有多个唯一性索引,但只能有一个主键: 3.主键列不允许空值,而唯一性索引列允许空值.

  8. 索引,主键,唯一索引,联合索引的区别

    https://blog.csdn.net/qq_33275924/article/details/80220797 https://www.cnblogs.com/ymj0906/p/4240856 ...

  9. 索引,主键,唯一索引,联合索引 的区别

    简单描述MySQL中,索引,主键,唯一索引,联合索引 的区别,对数据库的性能有什么影响 索引是一种特殊的文件(InnoDB 数据表上的索引是表空间的一个组成部分),它们 包含着对数据表里所有记录的引用 ...

最新文章

  1. 什么是指针?什么是数组?指针和数组的关系?
  2. 病症:arm启动后应用程序界面显示…
  3. http协议的缺点和确保web安全的https协议
  4. 20164319 刘蕴哲 Exp9 Web安全基础
  5. Python问答环节(2)
  6. CF 1475 D. Cleaning the Phone 思维模型
  7. [App Store Connect帮助]八、维护您的 App(4.2)查看评分与评论
  8. 弹出并点击弹框关闭 自定义toast_关于别名配置使用弹框交互应用的思考
  9. C++获取指向二维数组的首元素指针
  10. 一维数组的初始化问题(函数体内与函数体外)
  11. bat执行java文件_.bat文件执行java程序
  12. BZOJ.4727.[POI2017]Turysta(哈密顿路径/回路 竞赛图)
  13. 【Elasticsearch】Limit of total fields [1000] in index [xxxxxx_index] has been exceeded
  14. python魔法方法和普通方法_Python魔法方法之属性访问详解!
  15. windows7 iis安装 Windows Modules Installer服务无法启动
  16. Oracle rac11g 安装报INS41112
  17. 微信小程序引入iconfont阿里字体
  18. 3580整数配对---20210527
  19. 百度街景瓦片下载器1.1.5
  20. Gmail(Google App企业邮箱)的MX设置

热门文章

  1. 模型描述的关系模式_最常用的数据模型 - 关系模型
  2. 使用Python播放mp3格式音频
  3. 大数据技术原理与应用 第三篇 大数据处理与分析(三)Spark
  4. java关于继承的代码_java编写动物世界的继承关系代码
  5. 填充算法与curses油漆桶
  6. java作品欣赏_伊朗画家Javad的人像油画作品赏析
  7. 2022.10.27 英语背诵
  8. creo 6.0—15 creo草绘尺寸标注、修改
  9. html2canvas将html代码生成canvas转换成图片,并且保存到本地
  10. 原生JS沙滩足球游戏