《MySQL是怎样运行的 —— 从跟上理解MySQL》—— 第五章
一、不同类型的页简介
InnoDB
为了不同的目的而设计了许多种不同类型的页
,比如存放表空间头部信息的页,存放Insert Buffer
信息的页,存放INODE
信息的页,存放undo
日志信息的页等等。
《MySQL是怎样运行的 —— 从跟上理解MySQL》—— 第五章
InnoDB
为了不同的目的而设计了许多种不同类型的页
,比如存放表空间头部信息的页,存放Insert Buffer
信息的页,存放INODE
信息的页,存放undo
日志信息的页等等。
从 JDK 15 开始,这一特性被官方标记为废弃状态,如果还想继续使用的话需要通过 JVM 参数手动启用。
参考:https://zhuanlan.zhihu.com/p/365454004
偏向锁使用的前提:
-XX:BiasedLockingStartupDelay=0
来关闭延迟。如果确定应用程序里所有的锁通常情况下处于竞争状态,可以通过JVM参数-XX:UseBiasedLocking=false
关闭偏向锁,那么程序默认会进入轻量级锁状态。Object#hashcode()
方法《MySQL是怎样运行的 —— 从跟上理解MySQL》—— 第四章
到现在为止,MySQL
对于我们来说还是一个黑盒,我们只负责使用客户端发送请求并等待服务器返回结果,表中的数据到底存到了哪里?以什么格式存放的?MySQL
是以什么方式来访问的这些数据?
前面提到过,MySQL服务器程序上负责对表中数据进行读取和写入的部分是存储引擎,而服务器又支持不同类型的存储引擎,不同的存储引擎一般是由不同的人为实现不同的特性而开发的,真实数据在不同存储引擎中存放的格式一般是不同的。
由于InnoDB是MySQL中默认的存储引擎,也是最常用的存储引擎,因此以它为核心来看看数据的存储结构。
线程之间互不干扰,各个线程具有自己的线程栈,存储线程自身的信息。为了使得线程之间实现通信,提供了如下的方式:
1)volatile
、synchronized
、lock
=> 保证数据的可见性
/** |
Thread#sleep()
/** |