
数据库
文章平均质量分 54
HYYyyying
try and try hard
展开
-
脏读、幻读、不可重复读
脏读又称无效数据的读出,是指在数据库访问中,事务T1将某一值修改,然后事务T2读取该值,此后T1因为某种原因撤销对该值的修改,这就导致了T2所读取到的数据是无效的,值得注意的是,脏读一般是针对于update操作的。脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。幻读(Phantom Read),是指当事务不是原创 2022-07-14 14:04:35 · 1133 阅读 · 0 评论 -
种下一颗种子,十年后长成了参天B+树
对于范围查找来说, b + 树只需遍历叶子节点链表即可, 并且不需要排序操作, 因为叶子节点已经对索引进行 了排序操作。 b 树却需要重复地中序遍历, 找到所有的范围内的节点。B+树的中间节点不保存数据, 所以磁盘页能容纳更多节点元素, 更 “矮胖”。 B 树不管叶子节点还是非叶子节 点, 都会保存数据, 这样导致在非叶子节点中能保存的指针数量变少 ( 有些资料也称为扇出) , 指针少的情况 下要保存大量数据, 只能增加树的高度, 导致IO操作变多, 查询性能变低;b + 树查询必须查找到叶子节点, b 树原创 2022-07-12 16:29:11 · 194 阅读 · 0 评论 -
innodb、Mysql结构、三种删除的区别
使用自增id作为主键:每次插入新的记录,就会顺序添加到当前索引节点的后续位置,当一页写满,就会开辟新的一页使用非自增id作为主键 :非自增id(学号、身份证号),每次插入主键的值近似于随机,因此每次新纪录都要被插到现有索引页的中间某个位置。频繁的移动、分页操作造成了大量碎片,得到了不够紧凑的索引结构,后续不得不通过OPTIMIZE TABLE来重建表并优化填充页面包含服务层和存储引擎层,服务层:连接器:验证用户身份,给予权限查询缓存:存在缓存则直接返回,不存在则执行后续操作分析器:对SQL进原创 2022-07-11 16:46:34 · 369 阅读 · 0 评论 -
2022.6.28-数据库-1.数据库的隔离级别
事务中发生了修改,即使没有提交,其他事务也是可以看见的,比如对于一个数A原来50修改为100,但是我还没有提交修改,另一个事务看到这个修改,而这个时候原事务发生了回滚,这时候A还是50,,但另一个事务看到的A是100。可会造成脏读、幻读、不可重复读。对于一个事务从开始直到提交之前,所做的任何修改是其他事务不可见的,举例就是对于一个数A原来是50,然后提交修改成100,这个时候另一个事务在A提交修改之前,读取的A是50,刚读取完,A就被修改成100,这个时候另一个事务再进行读取发现A就突然变成了100了;可以原创 2022-06-28 16:45:11 · 144 阅读 · 0 评论