
MySQL数据库
lmkbuffon
永言配命,自求多福
展开
-
开发日记:使用Lombok插件@Bulider注解和mybaits查询结果注入的冲突
Lombok插件让开发变得更便捷,也带来了很多潜在的问题,如果不去了解Lombok插件的工作过程,就可能会出现很多难以预料的问题。在xml中创建一个mybatis的简单查询:<select id="queryElectronSmsSendInfoListByPage" resultType="com.meituan.it.finerp.contract.electron.entity.E...原创 2020-01-18 22:35:34 · 693 阅读 · 0 评论 -
MySQL学习笔记事务篇:MySQL中的锁
目录读写锁锁粒度:表锁和行锁悲观锁优点与不足乐观锁优点与不足数据库事务的ACID中的隔离性是由锁来实现的,所以需要了解一下数据库中有哪些锁。读写锁在处理并发情况时,通过共享锁和排他锁来实现。写锁会阻塞其他的写锁和读锁。锁粒度:表锁和行锁为了提高资源共享的并发性,尽量锁定需要修改的部分数据。在给定的资源上,锁定的数据量越少,则系统的并发程度越高,只要相互之...原创 2019-08-08 15:21:21 · 258 阅读 · 0 评论 -
MySQL学习笔记事务篇:分布式事务之2PC和3PC
目录背景二阶段提交协议阶段一阶段二执行事务提交中断事务扩展讨论三阶段提交协议阶段一阶段二执行事务预提交中断事务阶段三执行提交中断事务扩展讨论总结背景本地事务通过ACID特性能够很好地解决原子性、一致性以及隔离性问题,然而当今大部分的软件架构对系统都有扩展的诉求,系统扩展引发了资源的分布,分布的资源可以很好地支持系统的...原创 2019-08-08 15:19:15 · 1640 阅读 · 0 评论 -
MySQL学习笔记事务篇:undo日志和MVCC
目录undo logundo log的存储方式delete/update操作的内部机制:purge 机制insert undo logupdate undo logMVCCMVCC的实现原理结构MVCC工作过程undo logundo用来回滚行记录到某个版本。undo log一般是逻辑日志,根据每行记录进行记录。undo log和redo log记...原创 2019-08-08 15:19:03 · 5399 阅读 · 2 评论 -
MySQL学习笔记索引篇:索引基本原理
目录硬盘读写过程数据库加载数据的过程块与页索引基本原理索引的优点索引的种类聚簇索引非聚簇索引硬盘读写过程确定磁盘地址(柱面号,磁头号,扇区号),内存地址(源/目):当需要从磁盘读取数据时,系统会将数据逻辑地址传给磁盘,磁盘的控制电路按照寻址逻辑将逻辑地址翻译成物理地址,即确定要读的数据在哪个磁道,哪个扇区。为了读取这个扇区的数据,需要将...原创 2019-08-08 15:18:11 · 433 阅读 · 1 评论 -
MySQL学习笔记事务篇:redo日志
目录预写式日志bin logbinlog和事务日志的先后顺序及group commitredo log不适用零拷贝技术的原因日志块(log block)redo log的格式日志刷盘的规则数据页刷盘的规则及checkpointLSN详细分析innodb的恢复行为和redo log有关的几个变量redo log和二进制日志的区别预写式日志i...原创 2019-08-07 23:59:54 · 1058 阅读 · 0 评论 -
MySQL学习笔记索引篇:B树和B+树
目录B 树文件查找的具体过程(涉及磁盘IO操作)B树的高度B+树B+树更适合用于文件索引和数据库索引B+树的分裂B*-tree总结B 树B 树是为了磁盘或其它存储设备而设计的一种多叉(下面你会看到,相对于二叉,B树每个内结点有多个分支,即多叉)平衡查找树。与之前介绍的红黑树很相似,但在降低磁盘I/0操作方面要更好一些。B树与红黑树最大的不同在于,B树的结...转载 2019-08-08 16:12:06 · 3805 阅读 · 0 评论