MySQL都把数据库以子目录的形式存放在它安装目录的data目录下。当你新建一张表,MySQL就生成一个和表名一样的文件存放在这个子目录中。于是,当你创建一个表为MyTable,MySQL存储这个表为MyTable.frm文件。因为MySQL用文件系统来存储数据库和表定义的。是否区分大小写完全取决操作系统。在Windows上的MySQL就不会区分大小写。类Unix系统就会区分大小写。任何的存储引擎对于数据和索引的存储都是不同的。但是操作表的定义是由服务器来做的。 查看表建立时,用的命令 show create table 表名;
要查看表的存储引擎是什么可以使用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"。 |
|