MySQL 架构 - MySQL 存储引擎
2009-06-03 11:18:54 来源:WEB开发网这部分简单介绍MySQL存储引擎,不会深入讲述的,因为本教程从始至终贯穿了MySQL存储引擎的相关细节。本教程也不是完全的指导手册,详细的可以参考MySQL官方文档。MySQL也有论坛来专门讨论每个存储引擎的。经常提供些额外的信息和有趣的方法来使用它们。
MySQL都把数据库以子目录的形式存放在它安装目录的data目录下。当你新建一张表,MySQL就生成一个和表名一样的文件存放在这个子目录中。于是,当你创建一个表为MyTable,MySQL存储这个表为MyTable.frm文件。因为MySQL用文件系统来存储数据库和表定义的。是否区分大小写完全取决操作系统。在Windows上的MySQL就不会区分大小写。类Unix系统就会区分大小写。任何的存储引擎对于数据和索引的存储都是不同的。但是操作表的定义是由服务器来做的。
要查看表的存储引擎是什么可以使用SHOW TABLE STATUS命令。一个例子,要查看mysql数据库下user表。执行以下命令
mysql> SHOW TABLE STATUS LIKE 'user' G
*************************** 1. row ***************************
Name: user
Engine: MyISAM
Row_format: Dynamic
Rows: 6
Avg_row_length: 59
Data_length: 356
Max_data_length: 4294967295
Index_length: 2048
Data_free: 0
Auto_increment: NULL
Create_time: 2002-01-24 18:07:17
Update_time: 2002-01-24 21:56:29
Check_time: NULL
Collation: utf8_bin
Checksum: NULL
Create_options:
Comment: Users and global privileges
1 row in set (0.00 sec)
这个结果看的出来,存储引擎是MyISAM。你可能也想知道其他信息的意思。让我们解释一下
Name
表的名称
Engine
表的存储引擎,旧的版本,这个不叫Engine叫做Type
Row_format
行的格式。对于MyISAM表,格式为三种,Dynamic,Fixed,Compressed。Dynamic行,在长度上是可变的。因为它包含了变量长度的字段如VARCHAR,BLOB. Fixed行,总是固定的长度。字段是定长的。如CHAR,INTEGER。
Compressed行,仅仅可以应用在compressed tables。将在以后有个介绍。
Rows
这个表的行数。对于非事物的表,这个数字是精确的。对于支持事物的表,这个值是估算的。
Avg_row_length
每一行所包含的平均字节
Data_length
整个表包含的字节。
Max_data_length
这个表可最大存储的字节数。
Index_length
索引所消耗的硬盘空间。
Data_free
对于MyISAM表。总的分配空间。但是并没有使用。这个空间存储以前所删除的行。可能会被以后的INSERT语句恢复。
Auto_increment
下一个Auto_increment的值
Create_time
表第一次创建的时间
Update_time
表最后更改的时间
Check_time
最近一次使用CHECK或者myisamchk的时间。
Collation
表中的字符字段的默认字符集和排序
Checksum
如果enabled,就会计算这个表内容之和。
Create_options
当表创建时,所添加额外的参数。
Comment
表的额外信息。对于MyISAM表。它包含了评论,可以在表创建的时候添加任意的信息。如果InnoDB。会显示表空间的剩余空间。如果这个表是视图,这里显示"VIEW"。
更多精彩
赞助商链接