CSDN博主:【java_wxid】
CSDN博主:点击【Java廖志伟】
CSDN社区:点击【幕后大佬】
码云:点击【互联网Java工程师知识扫盲】
上一页 1 ··· 58 59 60 61 62 63 64 65 66 ··· 88 下一页
  2021年4月7日
摘要: 索引数据结构 B+树中间节点没有存储数据,叶节点存放数据,其余节点用来索引,所以同样大小的磁盘页可以容纳更多的节点元素,而B树是每个索引节点都会有Data域,所以B+树IO的次数更少。 B+树的数据保存,只有在叶子节点中才会有,而根节点只保存了索引,比如说根节点大小是16kb,一个索引大小是4b,如 阅读全文
posted @ 2021-04-07 16:34 我是廖志伟 阅读(15) 评论(0) 推荐(0)
摘要: 悲观锁、乐观锁、排它锁、共享锁、表级锁、行级锁,死锁? 悲观锁:每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。适用于写为居多的场景下。比如行锁,表锁等,读锁,写锁,syncronized实现的锁等。sql中实现悲观锁,使用for 阅读全文
posted @ 2021-04-07 15:29 我是廖志伟 阅读(10) 评论(0) 推荐(0)
摘要: 四大属性底层实现原理? A(原子性): 要么全部完成,要么完全不起作用。底层实现原理:undo log(当这个事务对数据库进行修改的时候,innodb 生成对应 undo log,他会记录这个 SQL 执行的相关信息,如果 SQL 执行失败发生这个回滚,innodb 根据这个 undo log 内容 阅读全文
posted @ 2021-04-07 13:55 我是廖志伟 阅读(27) 评论(0) 推荐(0)
摘要: 数据库事务隔离级别? 脏读: 一个事务a修改或添加了一条数据,在a事务提交之前,另一个事务b读到了这条数据,并进行了操作。a如果回滚的话,脏读可能会导致b操作不存在的数据。 不可重复读: 在一次事务中的两次相同条件的查询不一致,比如a事务执行select count(*) from user whe 阅读全文
posted @ 2021-04-07 13:49 我是廖志伟 阅读(13) 评论(0) 推荐(0)
摘要: 可靠消息最终一致性方案 基于 MQ 来实现事务。比如阿里的 RocketMQ 就支持消息事务。 大概的意思就是: A 系统先发送一个 prepared 消息到 mq,如果这个 prepared 消息发送失败那么就直接取消操作别执行了; 如果这个消息发送成功过了,那么接着执行本地事务,如果成功就告诉 阅读全文
posted @ 2021-04-07 11:21 我是廖志伟 阅读(13) 评论(0) 推荐(0)
摘要: 最大努力通知? 最大努力通知 其实我觉得本地消息表也可以算最大努力,事务消息也可以算最大努力。 就本地消息表来说会有后台任务定时去查看未完成的消息,然后去调用对应的服务,当一个消息多次调用都失败的时候可以记录下然后引入人工,或者直接舍弃。这其实算是最大努力了。 事务消息也是一样,当半消息被commi 阅读全文
posted @ 2021-04-07 11:09 我是廖志伟 阅读(13) 评论(0) 推荐(0)
摘要: MQ 事务消息? MQ 事务消息 有一些第三方的MQ是支持事务消息的,比如RocketMQ,他们支持事务消息的方式也是类似于采用的二阶段提交,但是市面上一些主流的MQ都是不支持事务消息的,比如 RabbitMQ 和 Kafka 都不支持。 第一阶段Prepared消息,会拿到消息的地址。第二阶段执行 阅读全文
posted @ 2021-04-07 11:05 我是廖志伟 阅读(15) 评论(0) 推荐(0)
摘要: 补偿事务(TCC)? 补偿事务(TCC) 针对每个操作,都要注册一个与其对应的确认和补偿(撤销)操作。它分为三个阶段: Try 阶段主要是对业务系统做检测及资源预留 Confirm 阶段主要是对业务系统做确认提交,Try阶段执行成功并开始执行 Confirm阶段时,默认 Confirm阶段是不会出错 阅读全文
posted @ 2021-04-07 11:01 我是廖志伟 阅读(57) 评论(0) 推荐(0)
摘要: 三阶段提交(3PC)? 3PC 相比于 2PC 它在参与者中也引入了超时机制,并且新增了一个阶段使得参与者可以利用这一个阶段统一各自的状态,3PC 包含了三个阶段,分别是准备阶段、预提交阶段和提交阶段 准备阶段的变更成不会直接执行事务,而是会先去询问此时的参与者是否有条件接这个事务,因此不会一来就干 阅读全文
posted @ 2021-04-07 10:58 我是廖志伟 阅读(42) 评论(0) 推荐(0)
摘要: 两阶段提交(2PC)? 两阶段提交(2PC) 第一阶段:协调者询问参与者事务是否执行成功,参与者发回事务执行结果。这一阶段的协调者有超时机制,假设因为网络原因没有收到某参与者的响应或某参与者挂了,那么超时后就会判断事务失败,向所有参与者发送回滚命令。 第二阶段:如果事务在每个参与者上都执行成功,事务 阅读全文
posted @ 2021-04-07 10:56 我是廖志伟 阅读(23) 评论(0) 推荐(0)
上一页 1 ··· 58 59 60 61 62 63 64 65 66 ··· 88 下一页

南北踏尘