1.mysql为什么支持事务?

支持事务就是要满足事务的四大原则,那么需要从事务的四大原则说起:

[仅供个人参考系列]MySQL整理笔记(从问题中复习)


2.redo与undo的作用:

[仅供个人参考系列]MySQL整理笔记(从问题中复习) undo:回滚;redo:恢复

他们的实际操作:

[仅供个人参考系列]MySQL整理笔记(从问题中复习)


3。事务的提交过程以及二阶段提交协议:

[仅供个人参考系列]MySQL整理笔记(从问题中复习)


4.乐观锁与悲观锁:

[仅供个人参考系列]MySQL整理笔记(从问题中复习)


5.另外总结几个问题:

    5.1. mysql为什么使用redo日志来保持数据的一致性:因为数据是先写入到缓存,再写入到表

    5.2. mysql是如何解决幻读问题:采用的是RR级别下innodb的间隙锁来解决

    5.3. mysql是如何保证一致性:采用二阶段提交协议(2pc)来解决


6. 如何处理死锁:

    从应用程序上考虑:剥夺资源;结束进程

    另外,可以参考这篇文章:详解MySQL中的死锁情况以及对死锁的处理方法

7. 数据库分表时的唯一性id解决方案:全局表;使每个表的自增偏移量一致,但是起始id不一致,例如有两个表,那么就存一奇一偶

8. mysql中实现锁的原理(注意查一下资料),MySQL锁解决并发问题详解MySQL 加锁处理分析(何登成博客,相当详细);MySQL学习之——锁(行锁、表锁、页锁、乐观锁、悲观锁等)(相当详细的锁介绍,了解学习即可)

9. 数据库分表后的上线问题解决方案:双写;结合触发器来同步(雷少指导)

10. 注意一下mysql中B+树与二叉树的区别

11.mysql连接类型与socket通信原理说明

12.MySQL调优(涉及到sql优化,慢日志分析,定位有问题的sql等)

13. 美团技术文章:MySQL索引原理及慢查询优化(仅供学习,里面涉及到太多join的优化,这一点可能参考性不太强,不过里面的一些思想可以多学习)

相关文章: