2018/11/18记录:
花了一整周的时间看了《MySQL技术内幕+InnoDB存储引擎》一书,本次只是对MySQL数据库的整体有了进一步的认识,包括以下知识:
架构 的线程问题:
主线程等
innodb的关键特性:
插入缓冲、两次写、自适应哈希、异步IO、刷新临近页
文件:
参数文件、日志文件(error log redo log undo log等)、套接字文件、pid文件、表结构定义文件、引擎文件
表:
存储结构(段、区、页、行)、行记录格式、数据页结构、约束(外键索引等)、视图、分区表
索引与算法:
数据结构、B+树、聚类与辅助索引、哈希算法(索引)、全文检索(索引)
锁:
innodb中的锁(一致性(非)锁定读、自增长、外键与锁)、锁的三种算法(recorde lock 锁单行记录、gap lock 锁范围记录、 next-key lock 前两个相加 .可解决 幻读 问题)、锁的阻塞、死锁的发生及解决(定时器 → 等待图回路检测(深度优先))、锁升级(降低细粒度锁维护的内存开销)
事务:
四种特性(原子、一致、隔离、持久)、事务的实现(redo /undo /purge 删除操作暂时只是做一个标记位/group commit redo的合并提交 )、事务的控制语句、事务的四种隔离级别(不可提交读 脏读 、 可提交读 不可重复读 、 可重复读 幻读 、 序列化 完美 )隔离级别是通过加锁的方式实现的、
备份:
日志比较重要、主从库配置
性能调优:
硬件支持、RAID、linux下的基准测试工具:sysbench、mysql-tpcc
源代码编译及调试:
略。
总结:
整体比较快速的浏览完了 第一遍 - - 对整体只是脉络有了大致的了解,深刻意识到之前只会用MySQL,内部什么都不知道。