MySql教程

《MySQL是怎么样运行的》读书笔记二

本文主要是介绍《MySQL是怎么样运行的》读书笔记二,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

MySQL 的数据目录

本章就是要唠叨一下InnoDBMyISAM这两个存储引擎的数据如何在文件系统中存储的。

数据目录:MySQL服务器程序在启动时会到文件系统的某个目录下加载一些文件,之后在运行过程中产生的数据也都会存储到这个目录下的某些文件中,这个目录就称为数据目录,我们下边就要详细唠唠这个目录下具体都有哪些重要的东西。

数据目录和安装目录的区别

数据目录是用来存储MySQL在运行过程中产生的数据。

数据目录的结构

我们每当我们新建一个数据库时,进行的操作:

  1. 数据目录下创建一个和数据库名同名的子目录

  2. 在该与数据库名同名的子目录下创建一个名为db.opt的文件,这个文件中包含了该数据库的各种属性,比方说该数据库的字符集和比较规则是个啥。

我们的数据其实都是以记录的形式插入到表中的,表有:表的结构,表中数据。

InnoDBMyISAM这两种存储引擎都在数据目录下对应的数据库子目录下创建了一个专门用于描述表结构的文件:表名.frm

系统表空间

独立表空间:InnoDB并不会默认的把各个表的数据存储到系统表空间中,而是为每一个表建立一个独立表空间,也就是说我们创建了多少个表,就有多少个独立表空间。

使用独立表空间来存储表数据的话,会在该表所属数据库对应的子目录下创建一个表示该独立表空间的文件:表名.ibd。

如:test.ibd文件就用来存储test表中的数据和索引。。

        test.frm文件就用来描述表结构。。

MyISAM是如何存储表数据的

MyISAM中的索引全部都是二级索引,该存储引擎的数据和索引是分开存放的。(innodb中数据与聚簇索引存放在一起的)。

创建test表就有:

test.frm
test.MYD
test.MYI

test.frm来存放表结构,test.MYD代表表的数据文件,也就是我们插入的用户记录;test.MYI代表表的索引文件,我们为该表创建的索引都会放到这个文件中。

视图在文件系统中的表示

视图其实是虚拟的表,也就是某个查询语句的一个别名而已,所以在存储视图的时候是不需要存储真实的数据的,只需要把它的结构存储起来就行了。只会存储一个视图名.frm

这篇关于《MySQL是怎么样运行的》读书笔记二的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!