MySQL系统讲座一:MySQL DB 引擎的演化和对比 && MySQL Query和Schema Migration的介绍
本周我们正式开始尝试了MySQL的系列讲座,感谢Richard和Rick分别给我们带来了《MySQL DB 引擎的演化和对比》 和《MySQL Query和Schema Migration的介绍》,相关的总结如下:
Slides
- Richard使用的slides。
- Rick使用的Slides。
- MySQL系列讲座第一讲总结:MySQL DB 引擎的演化和对比 && MySQL Query和Schema Migration的介绍
- MySQL系列讲座第二讲总结:MySQL存储引擎的深入介绍
- MySQL系列讲座第三讲总结:MySQL的事务介绍
- MySQL系列讲座第四讲总结:MySQL锁的介绍 && MySQL主从一致,高可用以及如何实现数据不丢失
- MySQL系列讲座第五讲总结:MySQL主从一致 && MySQL读写分离实操
- MySQL系列讲座第六讲总结:Distributed MySQL
- MySQL系列讲座第七讲总结:Uber是如何选择在Postgres和MySQL之间切换的
Q&A
感谢张程帮忙做的总结。
感谢Nancy提供的笔记供参考。
B+树是否都在内存中?
- 总得来说,索引数据的量也是比较大的,所以一般并不是存储在内存中的,都是直接存储在磁盘中的,所以对磁盘中的文件内容进行读取,免不了要进行磁盘IO。如果索引文件很大的话,并不能一次都加载进内存,所以在使用索引进行数据查找的时候是会进行多次磁盘IO,将索引数据分批的加载到内存中,因此一个好的索引的数据结构,在得到正确的结果前提下,一定是磁盘IO次数最少的。
- 【扩展】MySQL的索引为什么用B+ Tree?很详细介绍了B+ Tree,以及MySQL为什么使用它,并比较了InnonDB和MyISAM的不同。
- 【扩展】为什么 MySQL 使用 B+ 树
- 【扩展】数据库-MySQL,很详细的介绍
Page中数据是否一定有序?
- MySQL中存储数据的最小单元是page(页),默认大小为16KB,也就是说一个page可以存储多个数据。User Records:用户真正的数据存储区域,这里真正存放用户的行数据,它占据了整个page页的大部分空间。以单链表的形式存储一条条行记录。他们在物理上不一定是有序的,可能刚开始是有序的,但是随着增删改的操作可能就无序了,但是在逻辑上是有序的
- 【扩展】MySQL中的page页详解,很详细介绍了MySQL中的page页面。
- 【扩展】MySQL 页完全指南——浅入深出页的原理,很不错的总结。
- 【扩展】MySQL系列(4)— InnoDB数据页结构,这个系列还是不错。
Undo Log在MySQL中是如何工作的?
- Undo log的存储由InnoDB存储引擎实现,数据保存在InnoDB的数据文件中。在InnoDB存储引擎中,undo log是采用分段(segment)的方式进行存储的。rollback segment称为回滚段,每个回滚段中有1024个undo log segment。
- 【扩展】MySQL回滚日志(undo log)总结,详细介绍了undo log的各个方面。
- 【扩展】MySQL (七) | 详细分析MySQL事务日志 undo log
- 【扩展】MySQL · 引擎特性 · InnoDB undo log 漫游,源代码级别的分析,很不错的文章。就是版本相对老了一点。
- 【扩展】InnoDB:undo log(1),同样是源代码级别的分析。
为什么有了WAL还要Double Write
- 【扩展】MySQL InnoDB: Differences between WAL, Double Write Buffer, Log Buffer, Redo Log,Stack OVerflow上关于这个问题的讨论。
- 【扩展】讲讲 MySQL 中的 WAL 策略和 CheckPoint 技术
- 【扩展】【MySQL】double write 浅析,对double write进行了比较深入的介绍。
一些扩展问题和思考
- MySQL的query cache是什么?官网关于MySQL Query Cache的介绍。
- LSM Tree是不是主要用在No SQL DB上面?可以参考这篇文章《LSM-tree 基本原理及应用》。
- MySQL和Postgres的硬核比较,可以参考PostgreSQL和MySQL到底选哪一个?这个对比表格让你做下决定!
- Cassandra已经慢慢被淘汰了,因为它不太适用于facebook以外的公司的使用场景?一篇介绍Uber否决Cassandra的文章。
- MySQL为什么不推荐使用UUID? 记一次生产事故及分析MySQL为什么不推荐使用UUID或雪花id作为主键
- MySQL如何高效进行随机读取?可以参考这篇文章。
- 照例附上东哥带货文章一篇,哈哈
再次感谢大家的参与,也希望大家有好的资源能联系我更新这篇文章。谢谢大家。
下周话题安排和往期话题回顾敬请参见《系统设计开荒小分队话题讨论简介》
7 Responses
[…] 我们上次MySQL的讨论总结。 […]
[…] MySQL系列讲座第一讲总结:MySQL DB 引擎的演化和对比 && MySQL Query和Schema Migration的介绍 […]
[…] MySQL系列讲座第一讲总结:MySQL DB 引擎的演化和对比 && MySQL Query和Schema Migration的介绍 […]
[…] MySQL系列讲座第一讲总结:MySQL DB 引擎的演化和对比 && MySQL Query和Schema Migration的介绍 […]
[…] MySQL系列讲座第一讲总结:MySQL DB 引擎的演化和对比 && MySQL Query和Schema Migration的介绍 […]
[…] MySQL系列讲座第一讲总结:MySQL DB 引擎的演化和对比 && MySQL Query和Schema Migration的介绍 […]
[…] MySQL系列讲座第一讲总结:MySQL DB 引擎的演化和对比 && MySQL Query和Schema Migration的介绍 […]