InnoDB存储引擎笔记-InnoDB存储引擎

InnoDB体系架构下图展示了InnoDB的存储引擎的体系架构,从图可见:InnoDB存储引擎有多个内存块,可以认为这些内存块组成了一个大的内存池,负责如下工作:维护所有进程/线程需要访问的多个内部数据结构缓存磁盘上的数据,方便快速地读取,同时在对磁盘文件的数据修改之前在这里缓存重做日志(redo

Netty笔记

Netty的核心组件Channel回调Future事件和ChannelHandlerChannelChannel是JavaNIO的基本构造。它代表一个到实体的开放连接,如读操作和写操作。目前,可以把Channel看作是传入(入站)或者传出(出站)数据的载体。因此,它可以被打开或者被关闭,连接或者断开

mysql运行原理笔记-锁

解决并发事务带来问题的两种基本方式并发事务访问相同记录的情况大致可以划分为3种。读-读情况:并发事务相继续读取相同的记录。读取操作本身不会对记录有任何影响,不会引起什么问题,所以允许这种情况的发生。写-写情况:并发事务相继对相同的记录进行改动。读-写或者写-读情况:也就是一个事务进行读取操作,另一个

mysql运行原理笔记-redo日志和undo日志

事务隔离级别和MVCC事务隔离级别我们知道,MySQL是一个客户端/服务端架构的软件。对于同一个服务器来说,可以有多个客户端与之连接。每个客户端与服务端建立连接之后,就形成了一个会话。每个客户端都可以在自己的会话中向服务器发送请求语句,一个请求语句可能是某个事务的一部分。服务器可以同时处理来自多个客

mysql运行原理笔记-事务

事务简介事务的起源对于大部分程序来说,他们的任务就是把现实世界的业务场景映射到数据库世界中。原子性(Atomicity)在现实世界中,转账操作是一个不可分割的操作。如果在执行操作的过程中发生了错误,就把已经执行的操作恢复成没有执行之前的样子。隔离性(Isolation)对于现实世界中状态转换对应的某

mysql运行原理笔记-InnoDB的BufferPool

InnoDB的BufferPool缓存的重要性InnoDB存储引擎在处理客户端请求时,如果需要访问某个页的数据,就会把完整的页中的数据全部加载到内存中。也就是说,即使只需要访问一个页的一条记录,也需要先把整个页的数据加载到内存中。将整个页加载到内存中后就可以进行读写访问了,而且在读写访问之后并不着急

mysql运行原理笔记-explain

EXPLAIN详解EXPLAIN语句输出各个列的作用列明描述id在一个大的查询语句中,每个SELECT关键字都对应一个唯一的idselect_typeSELECT关键字对应的查询类型table表名partitions匹配的分区信息type针对单表的访问方法possible_keys可能用到的索引ke

mysql运行原理笔记-成本优化

基于成本的优化什么是成本一条查询语句在MYSQL中执行成本是由两个方面组成的。IO成本,我们的表经常使用的MyISAM、InnoDB存储引擎都是将数据和索引存储到磁盘上。当查询表中的记录时,需要先把数据或者索引加载到内存中,然后再进行操作。这个从磁盘到内存的加载过程损耗的时间称为IO成本。CPU成本

Redis实现缓存一致性的原理深度解析

首先要明白,缓存和数据库数据之间没有绝对的一致性,如果要绝对一致,那就不能使用缓存,我们只能保证数据的最终一致性,以及尽量保证缓存不一致的时间最短。另外,为了避免极端条件下造成的缓存与数据库之间的数据不一致,缓存需要设置一个失效时间。时间到了,缓存自动被清理,这样才能达到缓存和数据库数据的“最终一致