一.B+TREE的存储过程:B树的数据存储结构可以看到:
1、B+Tree 所有的数据都存储在叶子节点上。
2、B+Tree 所有的叶子节点之间是一种链式环结构。
假设寻找 key 为 33 的这条记录,33 在 16 和 34 中间,所以会去磁盘 3 进行寻找。
在磁盘 3 中进行判断,指针指向磁盘 8。在磁盘 8 中即可获取到数据 33,然后将 data 返回。
一般说到的页都是数据页。默认的页面大小为16kb,每个页中至少存储2条或以上的行记录。那么根据 BTree 数据查找的过程中可以得知一共读取了三个磁盘,那么每个磁盘的大小就是 16kb。
查找数据查找数据为9的过程如下:
当查找数值9,首先看到的数据是 4,9 是大于 4 的,所以会往 4 的右节点寻找。继续找到范围在 6 到 8 的节点,9 又大于 8,所以还需要往右节点寻找,最有一步就找到了数据 9,这个过程就是 BTree 数据结构查找数据的执行过程。
删除数据 删除6的过程 找到范围六和八 ,删除六 之后六的位置空白直接为8
这个你可以理解为阶,也可以理解为度,即B+ 树的阶数(一个节点存储的键的数量)
例如现在这个值设置的是 4,那么在一个节点中最多就可以存储 3 条数据,设置为 5那就可以最多放 4 条记录。
再加一条数据,节点就会进行分裂,这个也就验证了当阶设置为 n 时,一个节点可存 n-1 条数据
二.触发器的存储过程:
触发器是与表有关的命名数据库对象,当表上出现特定事件时,将调用该对象。它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。
触发器经常用于加强数据的完整性约束和业务规则等
触发器有一个非常好的特性就是:触发器可以禁止或回滚违反引用完整性的更改,从而取消所尝试的数据修改
在触发器中通过使用BEGIN … END结构,能够定义执行多条语句的触发器。在BEGIN块中,还能使用其他语法,如条件和循环等。我们可以将这些语句封装到存储过程里面,供触发器调用。
三.substring与substr的不同之处:substr (a,b),可以从下标为a的位置开始截取,一直截取到下标为b的位置, (取到头又取到尾); 而substring (a,b),是从下标为a的位置开始截取,截取到下标为b-1的位置, (取头取不到尾)。
四.truncate与delete的不同之处:delete是数据操作语言(DML)命令,采用行级锁定,可以从表中删除单个,多个或所有记录;而truncate是数据定义语言(DDL)命令,采用表级锁定,从数据库中删除所有记录和表结构。