随笔分类 - Mysql
摘要:第一章《一条查询语句是怎么运行的》 Mysql内部是怎么运行的 这一章的重点就是这一张图,我们从一个外层使用者的角度来窥探一下Mysql的内幕。 连接器 首先,我们知道不同系统之间的通信,就离不开网络,所以一定要有一个Server端去处理这些网络请求。在这里Mysql去客户端沟通的就是连接器。 看到
阅读全文
摘要:Innodb引擎里面的锁 Lock和Latch lock和latch是两种不一样的东西,在mysql里面都有使用,lock锁的是事务,latch锁的是线程间的共享数据。 锁的分类 锁最基础的分类就是共享锁和排它锁了 共享锁:S锁,可理解为读锁排它锁:X锁,可理解为死锁 他们互相间的阻塞和读写锁是一样
阅读全文
摘要:redo log redo log所做的事情就是在重启或者宕机以后,恢复到之前的正常状态。 其中各种配置的设定也是有一定学问的。 redolog的大小设定 它不能设置的太大,因为每次遍历一个大文件也是很耗费时间的 同时也不能设置的很小,因为当redolog不够用的时候,就会触发checkpoint进
阅读全文
摘要:Innodb文件系统 不管数据库再怎么牛掰,最后它一定也是落到了文件当中,但也不仅仅有数据库文件,在Innodb中有各种文件去支撑它的功能实现 参数文件 这个文件当然很重要了,这决定了我们启动数据库时的各种参数配置 日志文件 错误日志 错误日志对Mysql的启动、运行、关闭过程进行了记录,记录了SQ
阅读全文
摘要:Innodb特性 两次写 两次写是刷新进磁盘的时候,先1MB 1MB的刷新到DoubleWriter里面,再刷新到db磁盘中,这样做的目的是为了保证持久性 插入缓冲 这个特性是对于二次索引而言,并不会一下子把数据插入,而是会等一下,先插入插入缓冲中。插入缓冲的数据结构是B+树 AIO Innodb的
阅读全文
摘要:缓冲池 缓存这个东西是在开发当中使用特别多的东西,理解他也特别重要 虽然我们现在工业开发都是使用的第三方的缓存如redis,但是Mysql的缓存也是比较重要的东西。 如果出现了update,redis无法解决要到Mysql里去改,那就可能会命中Mysql的缓存,这个时候就能帮上大忙。 对于这些在缓存
阅读全文
摘要:Mysql的内部结构 总览Mysql,真的是干了很多事情。而这些事情肯定是要有线程去做的,那为了提高CPU的利用率,多线程再所难免,Innodb也在一次次的更新中把多线程处理得更加完善。如今的多线程分为以下的情况 Master Thread 其实我甚至可以认为,最早的Innodb肯定是单线程的,那就
阅读全文