InnoDB存储引擎笔记-锁

开发多用户,数据库驱动的应用时,最大的一个难点是:一方面要最大程度地利用数据库的并发访问,另外一方面还要确保每个用户能以一致的方式读取和修改数据。为此就有了锁(locking)机制,同时这也是数据库系统区别于文件系统的一个关键特性。什么是锁锁是数据库系统区别于文件系统的一个关键特性。锁机制用于管理对

InnoDB存储引擎笔记-索引与算法

索引是应用程序设计和开发的一个重要方面。若索引太多,应用程序的性能可能会收到影响。而索引太少,对查询性能又会产生影响。要找到一个合适的平衡点,这对应用程序的性能至关重要。InnoDB存储引擎索引概述InnoDB存储引擎支持以下几种常见的索引:B+树索引全文索引哈希索引前文已经提到过,InnoDB存储

InnoDB存储引擎笔记-表

本章将从InnoDB存储引擎表的逻辑存储及实现开始进行介绍,然后将重点分析表的物理存储特征,即数据在表中是如何组织和存放的。简单来说,表就是关于特定实体的数据集合,这也是关系型数据库模型的核心。索引组织表在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表(inde

mysql运行原理笔记-事务隔离级别和MVCC

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

高性能MySQL阅读笔记

慢查询基础:优化数据访问查询性能低下最基本的原因是访问的数据太多。某些查询可能不可避免地需要筛选大量数据,但这并不常见。大部分性能低下的查询都可以通过减少访问的数据量的方式进行优化。对于低效的查询,我们发现通过下面两个步骤来分析总是很有效:确认应用程序是否在检索大量超过需要的数据。这通常意味着访问了

数据库系统笔记

B树基础二分搜索树二分搜索树(BST)是一种有序的内存数据结构,可以用来高效的进行键值查找。二分搜索树由多个节点组成,每个树节点由一个键,一个与该键关联的值以及两个子节点指针组成。二分搜索树从称为根节点的单一节点开始。一颗二分搜索树中只能有一个根节点。每个节点将搜索空间分为左子树和右子树,一个节点的

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

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

mysql运行原理笔记-锁

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

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

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

mysql运行原理笔记-事务

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