Skip to content

Latest commit

 

History

History
58 lines (47 loc) · 3.29 KB

learning-resources.md

File metadata and controls

58 lines (47 loc) · 3.29 KB

数据库

在线资源

底层架构

  • 关键词:undo log redo log binlog MVCC 双写缓冲区 buffer pool change buffer log buffer 聚集索引 辅助索引 B+树 页结构 行结构
  • 相关文章:
  • 相关问题:
    • **整体架构:**InnoDB存储架构是怎样的
    • **工作原理:**查询语句的底层执行流程是怎样的
    • **IO性能:**文件IO操作写磁盘有哪几种方式,有什么IO优化方式
    • 缓存:InnoDB缓存(buffer pool, log buffer)的刷新方式有哪些
    • **缓存:**log buffer是在什么时候写入到磁盘的
    • **缓存:**为什么redo log prepare状态也要写磁盘?
    • **缓存:**脏页写盘一般发生在什么时候
    • **缓存:**为什么唯一索引的更新不可以借助change buffer
    • 缓存:log buffer的日志刷盘控制参数innodb_flush_log_at_trx_commit对写性能有什么影响
    • **缓存:**buffer pool的LRU是如何实现的,为什么要这样实现
    • **表存储:**系统表空间的结构,MySQL InnoDB磁盘存储格式,各种表空间(系统表空间,独立表空间,通用表空间)的作用和优缺点是什么,ibdataibdfrm文件分别是干嘛的
    • **行字段存储:**底层页和行的存储格式
    • 行字段存储:varcharnull底层是如何存储的,最大可用存储多大的长度
    • **行字段存储:**行记录太长了,一页存不下,该怎么存储?
    • **索引:**数据库索引的组织方式是怎样的,明白为什么要采用B+树,而不是哈希表、二叉树或者B树
    • **索引:**索引组织方式是怎样的,为什么大字段会影响表性能(查询性能,更新性能)
    • 索引:覆盖索引联合索引什么情况下会生效
    • **索引:**什么是索引下推,索引下推减少了哪方面的开销?
    • 索引:Change Buffer对二级索引DML语句有什么优化
    • **数据完整性:**MySQL是如何保证数据完整性的,redo logundo logbuffer pool数据完整性的关键作用分别是什么
    • MVCC:MVCC底层是怎么实现的,可重复读和读已提交是怎么实现的
    • 双写缓冲区有什么作用
    • Redo Log在一个事务中是在什么时候写入的?binlog和Redo Log有什么区别?

存储选型

索引

书籍

  • 📖 《高性能MySQL》
  • 📖 《MySQL技术内幕 : InnoDB存储引擎》
  • 📖 《数据库索引设计与优化》