定义主键和外键主要是为了维护关系数据库的完整性,总结一下:

1.主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。

身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。

2.外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。

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

索引的作用:

索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容,提高性能(查询速度)。

索引的优缺点?

优点:

1.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

2.可以大大加快数据的检索速度,这也是创建索引的最主要的原因。

3.可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

4.在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

5.通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

缺点:

1.创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

2.索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚集索引那么需要的空间就会更大。

3.当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

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

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

  1. mysql主键能否有实际意义_数据库主键不应该具有任何业务意义

    关系数据库学的最重要的一个理论是:不要给关键字赋予任何业余意义.假如关键字具有了业务意义,当用户决定业务含义,也许他们想要为关键字增加几位数字或者把数字改为字母,那么就必须修改相关的关键字.一个表中的 ...

  2. Mysql中主键和外键和索引

    Mysql中主键和外键和索引 1.主键和外键是什么 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是 ...

  3. MySQL中获取天、周、月等数据

    MySQL中获取天.周.月等数据 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 ...

  4. 2021-01-19:mysql中,一张表里有3亿数据,未分表,其中一个字段是企业类型,企业类型是一般企业和个体户,个体户的数据量差不多占50%,根据条件把个体户的行都删掉。请问如何操作?

    2021-01-19:mysql中,一张表里有3亿数据,未分表,其中一个字段是企业类型,企业类型是一般企业和个体户,个体户的数据量差不多占50%,根据条件把个体户的行都删掉.请问如何操作? 福哥答案2 ...

  5. MySQL 中主键的几种表设计组合的实际应用效果

    了解主键.外键.索引 主键 主键的主要作用是保证表的完整.保证表数据行的唯一性质, ① 业务主键(自然主键):在数据库表中把具有业务逻辑含义的字段作为主键,称为"自然主键(Natural K ...

  6. mysql中主键、普通索引、唯一索引和全文索引

    SQL索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录 开始扫描整个表的所有记录,直至找到符合要求的记录.表里面的记录 ...

  7. mysql中主键的用法_MySQL中的主键以及设置其自增的用法教程

    1.声明主键的方法:您可以在创建表的时候就为表加上主键,如: CREATE TABLE tbl_name ([字段描述省略...], PRIMARY KEY(index_col_name)); 也可以 ...

  8. mysql中主键约束和唯一约束的区别_主键约束和唯一性约束的区别

    1.主键约束(PRIMARY KEY) 1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键. 2) 是不可能(或很难)更新. 3) 主键列上没有任何两行具有相同值(即重复值),不允许空 ...

  9. mysql 中的pri_关于MySQL中 主键 pri mul

    因为虽然索引的多列组合是唯一的,比如ID+NAME是唯一的,但是没一个单独的列依然可以有重复的值,只要ID+NAME是唯一的即可 1. 如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, ...

最新文章

  1. centos7下搭建git和gitlab版本库
  2. 机器人编程语言python-入门篇丨使用EV3机器人,趣味学习Python编程语言~
  3. JNDI 笔记(一) 概述
  4. Python 自定义函数和参数类型
  5. 英语写作学习笔录 task1 conclusion
  6. python脚本转换成apk_apktool反编译apk并回编译
  7. 大年初一,磊哥给大家发大红包啦!
  8. mmorpg开发_MMORPG可以教给我们如何组建一支英勇的开发团队
  9. [图形]图形API的两种模式
  10. 西安市2008驾照理论考试题
  11. python 命令行 参数_Python命令行参数
  12. Syslog架设windows日志服务器
  13. Matlab 保存TXT文件 打开乱码 (解决)
  14. WEB学习第四天(网页模型
  15. 【解决】Jupyter Notebook 内核似乎挂掉了,它很快将自动重启。
  16. ST芯片烧录失败的原因分析及对策
  17. debconf: DbDriver “config“: /var/cache/debconf/config.dat is locked by another process的解决方法
  18. oppo的sd卡在哪里打开_oppo手机sd卡怎么打开 oppo手机sd卡怎样打开
  19. mysql 存储视频_数据库中怎样存储视频?谢谢各位
  20. Dell服务器型号的详解

热门文章

  1. Android APK方式换肤实现原理
  2. 傲娇Android二三事之操蛋的开发日记(第一回)
  3. Extjs--FormPanel(2)
  4. 《老子》第八十一章 信言不美,美言不信
  5. 远程恢复服务器,Hyper-V主机启用“远程桌面”功能
  6. 第十五章 异常检测-机器学习老师板书-斯坦福吴恩达教授
  7. STM32 基础系列教程 6 - PWM
  8. C# 指针的使用 ref byte 转 byte 或 byte [] ref 与指针
  9. OPNET仿真zigbee
  10. 安装Sublime Text 支持Go插件