摘要:
棋盘 九条竖线十条横线,90个交叉点,有90个放棋子的地方。 棋子的运用原则 将与帅,士与仕,象与相,兵与卒。叫法写法不一,但是他们的作用是一样的。 1.将与帅 ①走直线,前进后退均可。 ②一步只能走一格。 ③活动范围在米字格(又称九宫)之内。 ④可行处可吃敌子,被吃掉的棋子本局不可出现。本方棋子不 阅读全文
摘要:
表空间是一个抽象的概念,对于系统表空间来说,对应着文件系统中一个或多个实际文件;对于每个独立表空间来说,对应着文件系统中一个名为表名.ibd的实际文件。大家可以把表空间想象成被切分为许许多多个页的池子,当我们想为某个表插入一条记录的时候,就从池子中捞出一个对应的页来把数据写进去。本章内容会深入到表空 阅读全文
摘要:
数据库和文件系统的关系 我们知道像InnoDB、MyISAM这样的存储引擎都是把表存储在磁盘上的,而操作系统用来管理磁盘的那个东东又被称为文件系统,所以用专业一点的话来表述就是:像 InnoDB 、 MyISAM 这样的存储引擎都是把表存储在文件系统上的。当我们想读取数据的时候,这些存储引擎会从文件 阅读全文
摘要:
InnoDB存储引擎的B+树索引,我们必须熟悉下边这些结论: 每个索引都对应一棵B+树,B+树分为好多层,最下边一层是叶子节点,其余的是内节点。所有用户记录都存储在B+树的叶子节点,所有目录项记录都存储在内节点。 InnoDB存储引擎会自动为主键(如果没有它会自动帮我们添加)建立聚簇索引,聚簇索引的 阅读全文
摘要:
前边我们详细唠叨了InnoDB数据页的7个组成部分,知道了各个数据页可以组成一个双向链表,而每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表,每个数据页都会为存储在它里边儿的记录生成一个页目录,在通过主键查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽,然后再遍历该槽对应分组 阅读全文
摘要:
不同类型的页简介 前边我们简单提了一下页的概念,它是**InnoDB管理存储空间的基本单位**,一个页的大小一般是16KB。InnoDB为了不同的目的而设计了许多种不同类型的页,比如存放表空间头部信息的页,存放Insert Buffer信息的页,存放INODE信息的页,存放undo日志信息的页等等等 阅读全文
摘要:
我们前边唠叨请求处理过程的时候提到过,MySQL服务器上负责对表中数据的读取和写入工作的部分是存储引擎,而服务器又支持不同类型的存储引擎,比如InnoDB、MyISAM、Memory啥的,不同的存储引擎一般是由不同的人为实现不同的特性而开发的,真实数据在不同存储引擎中存放的格式一般是不同的,甚至有的 阅读全文
摘要:
MySQL的服务器程序和客户端程序也有很多设置项,比如对于MySQL服务器程序,我们可以指定诸如允许同时连入的客户端数量、客户端和服务器通信方式、表的默认存储引擎、查询缓存的大小吧啦吧啦的设置项。对于MySQL客户端程序,我们之前已经见识过了,可以指定需要连接的服务器程序所在主机的主机名或IP地址、 阅读全文
摘要:
MySQL的客户端/服务器架构 MySQL的服务器程序直接和我们存储的数据打交道,然后可以有好多客户端程序连接到这个服务器程序,发送增删改查的请求,然后服务器就响应这些请求,从而操作它维护的数据。我们日常使用MySQL的情景一般是这样的: 启动MySQL服务器程序。 启动MySQL客户端程序并连接到 阅读全文
摘要:
我们知道 Session 的产生时机是客户端和服务端建立连接,那建立完连接干嘛呢?肯定是要通信,也就是 CRUD 增删改查操作,比如客户端发送一个 create 请求给服务端,再比如客户端发送一个 get 请求给服务端…… 今天我们就来剖析下客户端发送给服务端一个 create 请求都需要进行哪些操 阅读全文