
Mysql
文章平均质量分 69
oceanFishJ
欢迎关注“码农心经”公众号
展开
-
分布式事务之2PC
2PC又称两阶段提交协议。2PC是一个非常经典的强一致、中心化的原子提交协议。它执行过程中需要协调者、参与者两种角色,一个协调者中心化节点,N个参与者节点共同合作完成分布式事务操作。下面以一个订单支付的场景案例进行对2PC协议的解析。支付成功后,需要修改订单状态为支付完成,否则修改状态为支付失败。2PC协议主要分为两个阶段:投票阶段、提交/执行阶段第一阶段:投票首先协调者收到请求后向参与者(订单服务)和参与者(支付服务)发出prepare预处理指令,通知它们进入2PC处理逻辑,并等原创 2021-04-10 15:28:59 · 412 阅读 · 0 评论 -
简述数据库中的 ACID 分别是什么?
ACID 原子性 定义:每个事务都是不可分割的最小工作单元,事务中的所有操作要么全成功,要么全失败。使用undo log实现回滚。 一致性 定义:比如A向B转账,A减少1000,B就得增加1000,两人的余额总和不能变。 隔离性 定义:各个事务之间相互隔离,互不干扰。通过锁和MVCC实现隔离 持久性 定义:事务一旦提交,数据会永久的存储在数据库中。使用redo log实现故障恢复。 实现原理 redo log 定义..原创 2021-02-17 16:45:47 · 3517 阅读 · 3 评论 -
聚簇索引和非聚簇索引有什么区别?什么情况用聚集索引?
+ MyISAM索引实现 + 使用B+树 + 叶子节点的data域存储数据记录的地址(非聚簇索引) + 主键索引与普通索引结构一样 + 查询数据时,首先找到data域中的地址,然后再根据地址去磁盘中读数据 + 图示 + InnoD...原创 2021-02-17 16:39:54 · 3726 阅读 · 3 评论 -
数据库的事务隔离级别有哪些?各有哪些优缺点?
事务隔离级别主要有四种 读未提交 (READ UNCOMMITED) 定义:一个事务可以读取另一个事务已修改但未提交的数据 存在的问题 脏读 不可重复读 幻读 读已提交 (READ COMMITED) 定义:一个事务只能读取另一个事务已经提交的数据 存在的问题 不可重复读 ...原创 2021-02-17 16:24:46 · 1480 阅读 · 2 评论 -
MySQL 为什么使用 B+ 树来作索引,对比 B 树它的优点和缺点是什么?
B树(平衡多路搜索树)图示特征每个节点可有多棵子树每个非叶子节点有n个key,并有n+1棵子树(子树数量比key数量多1)每个节点中key都是从小到大排序的最左子树上的值都小于最左key的值,最右子树上的值都小于最右key的值,中间子树的值则位于相邻两个节点的值之间所有叶子节点都具有相同的深度查询伪代码BTree_Search(node, key) { if(node == null) return null; foreach(node.key) ..原创 2021-02-17 12:09:56 · 3148 阅读 · 1 评论