全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

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

发布时间:2023-10-13 09:43:08
发布人:xqq

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

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

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

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

六大约束:

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

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

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

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

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

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

延伸阅读:

二、索引维护

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

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

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

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

#it技术干货

相关文章

MyBatis和jOOQ有哪些区别?

MyBatis和jOOQ有哪些区别?

2023-10-13
MyBatis的缓存机制是怎么样的?

MyBatis的缓存机制是怎么样的?

2023-10-13
Mycat分表分库的原理是什么?

Mycat分表分库的原理是什么?

2023-10-13
Access数据库怎样免费下载?

Access数据库怎样免费下载?

2023-10-13

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取