摘要:
本篇已收录在 "MySQL 是怎样运行的 学习笔记系列" MySQL Server有一个称为查询优化器的模块,一条查询语句进行语法解析之后就会被交给查询优化器来进行优化,优化的结果就是生成一个所谓的执行计划,这个执行计划表明了应该使用哪些索引进行查询,表之间的连接顺序是啥样的,最后会按照执行计划中的 阅读全文
摘要:
本篇已收录在 "MySQL 是怎样运行的 学习笔记系列" 表空间是一个抽象的概念,对于系统表空间来说,对应着文件系统中一个或多个实际文件;对于每个独立表空间来说,对应着文件系统中一个名为表名.ibd的实际文件。大家可以把表空间想象成被切分为许许多多个页的池子,当我们想为某个表插入一条记录的时候,就从 阅读全文
摘要:
本篇已收录在 "MySQL 是怎样运行的 学习笔记系列" 数据库和文件系统的关系 什么是文件系统, 操作系统用来管理磁盘的被称为文件系统 像 InnoDB 、 MyISAM 这样的存储引擎都是把表存储在文件系统上的。当我们想读取数据的时候,这些存储引擎会从文件系统中把数据读出来返回给我们,当我们想写 阅读全文
摘要:
本篇已收录在 "MySQL 是怎样运行的 学习笔记系列" 使用索引的代价 在熟悉了B+树索引原理之后,本篇文章的主题是唠叨如何更好的使用索引,虽然索引是个好东西,可不能乱建,在介绍如何更好的使用索引之前先要了解一下使用这玩意儿的代价,它在空间和时间上都会拖后腿: 空间上的代价: 这个是显而易见的,每 阅读全文
摘要:
通过学习 MySQL 是怎样运行的: 从根儿上理解 MySQL, 了解一些平时没有注意的点和细节, 形成了这个系列的读书笔记, 温故而知新. mysql 学习 - 认识MySQL mysql 学习 - 乱码问题 mysql 学习 - 配置项 mysql 学习 - InnoDB的行 mysql 学习 阅读全文
摘要:
本篇已收录在 "MySQL 是怎样运行的 学习笔记系列" 我们已经知道在单一数据页中查找数据时, 如果查找条件是主键的话, 可以使用二分法定位槽, 然后顺序遍历槽中的数据查找指定数据. 但是我们并不知道如何在数以万计的页中定位数据在哪个页中, 在没有索引的情况下,不论是根据主键列或者其他列的值进行查 阅读全文
摘要:
本篇已收录在 "MySQL 是怎样运行的 学习笔记系列" 页 InnoDB是一个将表中的数据存储到磁盘上的存储引擎,所以即使关机后重启我们的数据还是存在的。而真正处理数据的过程是发生在内存中的,所以需要把磁盘中的数据加载到内存中,如果是处理写入或修改请求的话,还需要把内存中的内容刷新到磁盘上. 不论 阅读全文
摘要:
本篇已收录在 "MySQL 是怎样运行的 学习笔记系列" InnoDB行 我们平时是以记录为单位来向表中插入数据的,这些记录在磁盘上的存放方式也被称为行格式或者记录格式。InnoDB存储引擎到现在为止设计了4种不同类型的 ,分别是Compact、Redundant、Dynamic和Compresse 阅读全文
摘要:
本篇已收录在 "MySQL 是怎样运行的 学习笔记系列" 本文介绍一些关于 mysql 的默认配置 启动服务器时的配置项 服务器允许同时连入的客户端的默认数量是 表的默认存储引擎是 , 切换其他的: 启动服务器程序的时候就禁止各客户端使用TCP/IP网络进行通信 或者 一些命令行参数: 在Windo 阅读全文
摘要:
本篇已收录在 "MySQL 是怎样运行的 学习笔记系列" 字符集 mysql 存储数据比如字符串时, 是将字符串的内容根据定义好的 转义成为二进制序列, 再进行存储的. 这种转义的行为被称为 . 如果字符串中有字符是不存在于字符集当中的, 那么会被认为是 , 即使存进数据库, 再获取出来时也不会正常 阅读全文
摘要:
本篇已收录在 "MySQL 是怎样运行的 学习笔记系列" MySql 属于 C/S 架构 我们日常使用MySQL的情景一般是这样的: 启动MySQL服务器程序 启动MySQL客户端程序并连接到服务器程序 在客户端程序中输入一些命令语句作为请求发送到服务器程序,服务器程序收到这些请求后,会根据请求的内 阅读全文