定义主键和外键主要是为了维护关系数据库的完整性,总结一下:
1.主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。

身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。 
2.外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。

比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。

索引的作用:
索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容,提高性能(查询速度)。
索引的优缺点?
优点:
1.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
2.可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
3.可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
4.在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
5.通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

缺点:
1.创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
2.索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚集索引那么需要的空间就会更大。
3.当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

因为索引非常占内存,所以索引也需要谨慎添加,哪些字段需要索引。

数据库主键和外键的作用以及索引的作用,它的优缺点是什么?相关推荐

  1. 关于数据库主键和外键的作用与区别

    一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键  比如   学生表(学号,姓名,性别,班级)  其中每个学 ...

  2. mysql中主键外键的作用_数据库主键和外键的作用以及索引的作用,它的优缺点是什么?...

    定义主键和外键主要是为了维护关系数据库的完整性,总结一下: 1.主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄. 身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证 ...

  3. 数据库主键和外键的作用?

    主键保证了数据的唯一性,外键保证了数据的完整性. 主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄. 身份证号 是唯一能确定你这个人的,其他都可能有重复,所以, 身份证号 是主键 ...

  4. (转)关于数据库主键和外键(终于弄懂啦)

    一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键  比如   学生表(学号,姓名,性别,班级)  其中每个学 ...

  5. SQL SERVER 数据库主键和外键的思考

    SQL SERVER 数据库主键和外键的思考 什么是主键: 主键是指表中一个列或者列的组合,其值能够唯一的标识表中的每一个行.这样的一列或者多列成为表的主键,通过它可以强制表的实体完整性.当创建或者更 ...

  6. 关于数据库主键和外键

    一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键  比如   学生表(学号,姓名,性别,班级)  其中每个学 ...

  7. 关于数据库主键和外键,索引

    一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生的学号 ...

  8. 数据库主键、外键和唯一键的区别

    数据库主键.外键和唯一键的区别 现在我们想建立学生表,用来存储,一个系统的登陆信息.建表如下: create table student4 (stu_id int primary key identi ...

  9. 数据库主键与外键的区别

    数据库主键与外键 我们知道,好的数据结构会影响速度,当然,好的数据库表设计会影响数据库操作效率.特别是数据特别多的时候如果表的结构不好的话,操作将会变得特别复杂.其中,主键和外键值得我们去了解. 在开 ...

最新文章

  1. oracle删除大表的数据的方法
  2. python的直接赋值不会拷贝,只相当于变量的一个别名
  3. Buffer Status Report(BSR)
  4. pps+linux版+x64,64位Ubuntu 11.04安装PPS的办法
  5. android uri db,Android ContentProvider封装数据库和文件读写总结
  6. RocketMq 事务消息使用
  7. python中tf.abs_python – Tensorflow:替换tf.nn.rnn_cell._linear(输入,大小,0,范围)
  8. html-webpack-plugin 中使用 title选项设置模版中的值无效
  9. C#中combobox 控件属性、事件、方法
  10. 对非线程安全类ListT的一些总结
  11. 74. PHP 计数器
  12. android sdk 转移_腾讯微博java(android)sdk关系链api详细介绍
  13. iphone NSString 字符串处理:截取字符串、匹配字符串、分隔字符串
  14. R如何读取csv文件
  15. 谷木美身粥要怎样做?谷木美身粥功效真的那么神奇?
  16. 格式化U盘提示Windows 无法完成格式化
  17. 转:关于ASP操作Access数据库时出现死锁.ldb的解决方法
  18. 空间注意力机制和通道注意力机制详解
  19. 【数学建模】6 近十年江西省研究生建模赛题及近三年全国建模赛题目录
  20. 拿到别人的vue项目之后如何运行

热门文章

  1. Mac系统下Pages如何使用多级目录
  2. python3.5读取json文件时,顺序被打乱,解决方案
  3. h264和h265的区别
  4. 深富策略指数红盘震荡
  5. 隐藏wx.lib.agw.customtreectrl.CustomTreeCtrl滚动条
  6. 若两个复数分别为:c1​=x1​+y1​i和c2​=x2​+y2​i,则它们的乘积为 c1​×c2​=(x1​x2​−y1​y2​)+(x1​y2​+x2​y1​)i。
  7. 【C语言】请统计某个给定范围[L, R]的所有整数中,数字 2 出现的次数。
  8. 环境变量中classpath环境变量作用详解
  9. Thinkpad E580 硬件错误0187、2200、2201解决经历
  10. Java开发手册七(设计规约)