数据库之八股文

在数据库中实现索引,采用的数据结构就是B+ tree,它的特性是:

  • 每个结点存了几个值,就由几个子树
  • 父节点的元素都存在于子节点中,且是子节点中最大的值或最小的值
  • 最下方的叶子节点链表相连(包含database的数据全集)
    The edge of B+ tree:
    1.height low;
    2.便于查找
    3.只需非叶子节点的id存储于内存中。

事务
Concept:就是将多个操作打包成一个步骤
rollback(回滚):若其中一个步骤不成功,就会回到初始状态。
code:
start transaction;
若干SQL;
commit;
事务有四大基本特性:
1.原子性:
顾名思义,事务中的步骤不可分割。
2.一致性
前后数据要一致,比如王五装给李四500;李四收到的钱也必须是500
3.持久性
事务的过程记录到磁盘上,一旦执行成功,哪怕是重启主机,也是修改后的状态
4.隔离性
多个事务并发执行所产生的情况。
既然是并发,就是多个事务会同时执行,效率提高的同时也是会trigger 一些问题

  1. 脏读问题:同学A写代码,同学B偷偷看了一部分,随后同学A又改了代码。
  2. 不可重复读:同学A写完代码,同学B开始看代码,At the same time ,同学A又开始写代码。
  3. 幻读:同学B看Z代码,同学A修改Y代码,间接的影响了同学B的result set。
    我们需要在实际场景中根据要求来设置这个隔离性和并发性
    在MySql中,也是提供以下四个挡位供你选择。
    1.read uncommitted(并发性最强)
    2.read committed
    3.repeatable read
    4.serializable (隔离性最强)
    可以在my.ini中进行修改挡位。

猜你喜欢

转载自blog.csdn.net/m0_55634684/article/details/125951271
今日推荐