千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:西安千锋IT培训  >  技术干货  >  关系型数据库中的字段默认值、不可为空、少数索引约束的优缺点是什么?

关系型数据库中的字段默认值、不可为空、少数索引约束的优缺点是什么?

来源:千锋教育
发布人:xqq
时间: 2023-10-20 21:56:39

一、关系型数据库中的字段默认值、不可为空、少数索引约束的优缺点

1.字段默认值:针对每个字段都有自己的默认值,较有利于进行统计和分析,以及方便程序逻辑操作;

2.不可为空:若是该字段创建为索引情况下,且允许为NULL,则存储多个值,若是不允许为空,可能用某一个值替代,则索引值更少,以及部分数据库产品不支持字段为NULL情况下创建索引(特别是早期的数据库产品)。

3.少数性约束:那是指有数据少数性要求的情况下,可以借助数据库的方式判断是否存在重复值,而避免程序去判断,减少事务的处理等。

六大约束:

not null 非空 :用于保障该字段的值不能为空, 比如姓名、学号等

Default 默认: 用于保证该字段有默认值,比如性别、

PRIMARY KEY 主键: 用于保证该字段的值有少数性,并且 非空。是能够少数的标识一组数据的数据元素;比如说:学号,姓名,年龄,性别,课程号课程中学号是少数的

UNIQUE 少数约束: 用于保障该字段的值有少数性,可以为空, 比如座位号

Check 检查约束:mysql中不支持,但不报错

Foreign KEY 外键:用于限制两个标的关系 用于保证该字段的值必须来自于主表关联的值。 一组数据的主键是另一组数据的的元素;主键约束了外键所在表中不能存在主键类之外的值;外键用于与另一张表的关联。比如:学生表的专业编号、员工表的部门编号。

延伸阅读:

二、索引维护

B+树为了维护索引有序性,在插入新值的时候需要做必要的维护。以上面这个图为例,如果插入新的行ID值为700,则只需要在R5的记录后面插入一个新记录。如果新插入的ID值为400,就相对麻烦了,需要逻辑上挪动后面的数据,空出位置。

而更糟的情况是,如果R5所在的数据页已经满了,根据B+树的算法,这时候需要申请一个新的数据页,然后挪动部分数据过去。这个过程称为页分裂。在这种情况下,性能自然会受影响。

除了性能外,页分裂操作还影响数据页的利用率。原本放在一个页的数据,现在分到两个页中,整体空间利用率降低大约50%。

当然有分裂就有合并。当相邻两个页由于删除了数据,利用率很低之后,会将数据页做合并。合并的过程,可以认为是分裂过程的逆过程。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

在mysql中, 为什么只有右模糊才走索引?

2023-10-20

SQL语言中的ALTER和UPDATE,DROP和DELETE都有什么区别?

2023-10-20

一个大型的SNS网站,是否适合数据库全部用mongodb来做,为什么?

2023-10-20

最新文章NEW

为什么声明性语言往往适合于并行执行,命令代码很难在多个内核和多个机器之间并行化?

2023-10-20

MySQL多表关联查询效率高点还是多次单表查询效率高,为什么?

2023-10-20

jmeter性能测试步骤?

2023-10-20

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>