Mysql InnoDB 读书笔记--文件和表

文件:

参数文件:包含一些设置信息,初始化信息     mysql --help  | grep my.cnf.          show variables命令所查询的就是这些参数

日志文件:如错误日志文件,二进制日志文件,慢查询日志,查询日志等

socket文件:用于unix套接字连接

pid文件:进程ID文件

mysql表结构文件:用来存放mysql表结构定义

存储引擎文件:每个存储引擎都会有自己的文件来保存各种数据。存储引擎真正存储了数据和索引等。


日志文件
错误日志: show variables like ''log_error';

慢查询日志: show variables like 'log_slow_queries'

查询日志:主机名.log

二进制日志:只记录 更改 操作(不记录select show等操作)  其作用:恢复和复制


表结构定义文件 : .frm

无论采用何种存储引擎,mysql都有一个以frm为后缀名的文件。记录了该表的表结构定义。


innoDB存储引擎文件:

redo log ; ib_logfile0,ib_logfile1

表空间文件:若未设置 innodb_file_per_table,为ibdata1,ibdata2.若设置,则每个表都有.ibd文件  单独的表空间文件只存储数据、索引和插入缓冲等信息,其他信息(undo,系统事务信息,二次写缓冲)还是在默认的表空间中


redo log与二进制日志的不同:二进制日志会记录所有与mysql有关的日志记录,无论是何存储引擎,redo log只记录innodb的事务。

二进制日志记录事务的具体操作,redo log则记录每个页的物理情况



表:

段(segment): 数据段(B+树叶节点),索引段(B+树非叶节点),回滚段(rollback segment) 

InnoDB存储引擎是索引组织的(index organized),所以数据即索引,索引即数据。

区(extent):段由区组成

页(page 或者block): 区由64个page组成,page中存储着多个row信息 row之间有指针,类似链表                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               VARVHAR最大长度为65535,因为compact行记录格式开头为变长字段长度列表,比如有3个varchar,长度分别为1,2,3,则记录为03 02 01(2个字节,16进制) 所以最大长度为FF(65535)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         

你可能感兴趣的:(InnoDB,mysql)