1.mysql为什么支持事务?
支持事务就是要满足事务的四大原则,那么需要从事务的四大原则说起:
2.redo与undo的作用:
undo:回滚;redo:恢复
他们的实际操作:
3。事务的提交过程以及二阶段提交协议:
4.乐观锁与悲观锁:
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+树与二叉树的区别
12.MySQL调优(涉及到sql优化,慢日志分析,定位有问题的sql等)
13. 美团技术文章:MySQL索引原理及慢查询优化(仅供学习,里面涉及到太多join的优化,这一点可能参考性不太强,不过里面的一些思想可以多学习)