MySQL数据库表的表示


  本文标签:MySQL数据库表

  MySQL数据库表究竟是如何表示的呢?下面就为您介绍MySQL数据库表在MySQL数据库中是如何表示的,希望对您有所帮助  。

  每个数据库在数据库目录中有3个文件:一个样式(描述文件)、一个数据文件和一个索引文件  。每个文件的基本名是表名,文件名扩展名代表文件类型  。扩展名如下表  。数据和索引文件的扩展名指出表使用老式IASM索引或新式MyISAM索引  。

表 MySQL文件类型
文件类型 文件名扩展名 文件内容
样式文件 .frm 描述表的结构(它的列、列类型、索引等)  。
数据文件 .ISD(ISAM)
或.MYD(MyISAM)
包含数据文件上的所有索引的索引树  。
索引文件 .ISM(ISAM)
或.MYI(MyISAM)
该索引文件依赖表是否有索引而存在  。

  当你发出一条CREATE TABLE tbl_name时语句定义表的结构时,服务器创建一个名为tbl_name.frm的文件,它包括该结构的内部编码,同时也创建一个空数据和索引文件,初始化为包含指出无记录和无索引的信息(如果CREATE TABLE语句包括索引指定,索引文件反映出这些索引)  。对应于表的文件的属主和模式被设置为只允许MySQL服务器用户访问  。

  当你发出一条ALTER TABLE tbl_name语句时,服务器重新编码tbl_name.frm,并修改数据和索引文件的内容以反映语句指定的结构改变  。对于CREATE INDEX和DROP INDEX也是一样,因为它们被服务器视为与ALTER TABLE等价  。DROP TABLE通过删除对应于表的三个文件来实现  。

  虽然你可以通过删除数据库目录中对应于表的三个文件,但不能手工创建或修改一个表,如,如果my_db是当前数据库,DROP TABLE my_tbl大概等价于下列命令  。

  % rm -rf DATADIR/my_db/my_tbl.*

  SHOW TABLE my_db的输出只是列出my_db数据库目录中的.frm文件的基文件名  。有些数据库系统一个注册表,列举所有包含在一个数据库中的表,MySQL不是,因为不必要,“注册表”隐含在数据目录的结构中  。

  以上就是MySQL数据库表的表示介绍  。