5 月 2021

MySQL后台线程的清理工作

后台清理工作:脏页刷盘、undo回收   1、page cleaner thread:刷新脏页   2、purge thread:清空undo页、清理“deleted”page 一、innodb_page_cleaners   page cleaner线程从buffer pool中刷脏页的线程数量。 1、5.7新特性   1、5.6版本以前,脏页的清理工作交由master线程的;   2、Page cleaner thread是5.6.2引入的一个新线程(单线程),从master线程中卸下buffer pool刷脏页的工作独立出来的线程(默认是启一个线程);   3、5.7开始支持多线程刷脏页…

InnoDB关键特性之change buffer

一、关于IOT:索引组织表   表在存储的时候按照主键排序进行存储,同时在主键上建立一棵树,这样就形成了一个索引组织表,一个表的存储方式以索引的方式来组织存储的。   所以,MySQL表一定要加上主键,通过主键来访问MySQL表的性能是最好:     1、显式定义主键:primary key     2、隐式定义主键:如果没有指定主键,MySQL自己会默认建立一个主键(rowid隐藏主键) 1、特点   1、表按照主键排好序,数据按照主键顺序存放(核心原因)   2、主键上有一棵树,叶子节点就是数据节点   3、表本身就是索引,表就是索引、索引就是表   4、IOT对于通过主键找表数据的成本最…

InnoDB关键特性之double write

# 脏页刷盘的风险 两次写的原理机制   1、解决问题   2、使用场景   3、doublewrite的工作流程   4、崩溃恢复 # doublewrite的副作用   1、监控doublewrite负载   2、关闭doublewrite场景 一、脏页刷盘风险 关于IO的最小单位:   1、数据库IO的最小单位是16K(MySQL默认,oracle是8K)   2、文件系统IO的最小单位是4K(也有1K的)   3、磁盘IO的最小单位是512字节 因此,存在IO写入导致page损坏的风险: 二、doublewrite:两次写   提高innodb的可靠性,用来解决部分写失败(par...