MySQL数据目录结构
2008-12-19 11:16:24 来源:WEB开发网SHOW DATABASE基本上不做什么,只是列出位于数据目录中的目录名。有些数据库系统保持一个主表,用于维护所有数据库,但在MySQL无此构件。由于赋予数据目录结构的简洁性,数据库列表隐含在数据目录的内容中,而且这样的表不必有额外的开销。
2.3 数据库表的表示
每个数据库在数据库目录中有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大概等价于下列命令。
更多精彩
赞助商链接