知识点一:表的物理结构
说明:表在硬盘中的存储形式因引擎类型不同也有所不同,
知识点二:InnoDB的物理存储形式
对于Inndb型数据库文件的存储受到innodb_file_per_table参数的影响,
1) 如果innodb_file_per_table = 1 或 on 那么每个数据库会以两个独立的文件显示。
文件一:tbl_name.frm 存放表的定义
文件二:tbl_name.ibd存放表索引和数据
2) 如果innodb_file_per_table = 0 或 off 每个数据库会独立存储表定义,但是索引与数据会在一个共同的表空间中存储。
文件一:tbl_name.frm
文件二:多个表索引及数据存储到一个系统表空间中,例如:ibdata1
3) 如何查看或修改 innodb_file_per_table
可以在mysql配置文件 my.ini中查找修改,如果查找不到可以在[mysqld]下添加,
innodb_file_per_table = on。
查看innodb_file_per_table值得方法:
Show variables like '%per_table'
附加知识点:可以通过 show variables 查看所有的系统变量。
知识点三:MyISAM引擎用三个文件来存储一个表
文件一:tbl_name.frm 存放表的定义
文件一:tbl_name.MYD 存放表数据 D是Data简写
文件三:tbl_name.MYI 存放表索引,I是index简写
知识点四:临时表与内存表
临时表一般仅内存在内存中不会在硬盘中,内存表的表定义存在硬盘中表数据存在内存中,关于更多不常用引擎类型文件组织形式的讨论超出本书范围可以参阅Mysql官方在线手册。