资料库目录是资料库伺服器存放数据档案的地方,不仅包括有关表的档案,还包括数据档案和的伺服器选项档案等。
基本介绍
- 中文名:资料库目录
- 外文名:Database directory
- 用途:资料库伺服器存放数据档案的地方
- 类型:计算机科学
- 内容:表档案,数据档案,伺服器档案等
- 学科:资料库
资料库目录是资料库伺服器存放数据档案的地方,不仅包括有关表的档案,还包括数据档案和的伺服器选项档案。不同的分发,资料库目录的预设位置是不同的。如果运行多个伺服器,那幺您应该掌握所有数据目录的位置。
数据目录的位置
预设资料库的位置编译在伺服器中。
如果您是在一个源程式分发包中安装 MySQL,典型的预设位置可能是 /usr/local/var;
如果在二进制分发包中安装 MySQL,则为 /usr/local/mysql/ data;
在 RPM 档案中安装,为 /var/lib/mysql。
对于windwos平台上的分发,其位置时BASEDIR\data
数据目录的位置可以在启动伺服器时通过--datadir = / path / to / dir 明确地指定。如果您想将数据目录放置在其他地方而非预设的位置,则这个选项是有用的。
数据目录结构
以MySQL资料库为例,MySQL数据目录包含了伺服器管理的所有数据目录,这些档案被组织成一个树状结构,通过利用Unix或Windows档案系统的层次结构直接实现。
每个资料库对应于数据目录下的一个目录。
在一个资料库中的表对应于数据目录下的档案。
数据目录也包含由伺服器产生的几个状态档案,如日誌档案。这些档案提供了关于伺服器操作的重要信息。对管理特别在出了问题而试图确定问题原因时很有价值。例如,如果某个特定查询杀死伺服器,你可以通过检查日誌档案判别捣乱的查询。
每个资料库对应于数据目录下的一个目录。
在一个资料库中的表对应于数据目录下的档案。
数据目录也包含由伺服器产生的几个状态档案,如日誌档案。这些档案提供了关于伺服器操作的重要信息。对管理特别在出了问题而试图确定问题原因时很有价值。例如,如果某个特定查询杀死伺服器,你可以通过检查日誌档案判别捣乱的查询。
资料库表的表示法
资料库中的每个表在资料库目录中都作为三个档案存在:一个格式(描述)档案、一个数据档案和一个索引档案。每个档案的基名是该表名,扩展名指明该档案的类型。扩展名如表1所示。数据和索引档案的扩展名指明该表是否使用较老的 ISAM 索引或较新的 MyISAM 索引。当发布定义一个表结构的 CREATE TABLE tbl_name 语句时,伺服器创建 tbl_name.frm 档案,它包含该结构的内部编码。该语句还创建空的数据档案和索引档案,这些档案的初始信息表明没有记录和索引(如果 CREATE TABLE 语句包含索引说明,则该索引档案将反映这些索引)。描述表的档案的所有权和方式被设定为只允许对 MySQL 伺服器用户的访问。

当发布 ALTER TABLE 语句时,伺服器对 tbl_name.frm 重新编码并修改数据档案和索引档案的内容以反映由该语句表明的结构变化。对于 CREATE 和 DROP INDEX 也是如此,因为伺服器认为它们等价于 ALTER TABLE 语句。DROP TABLE 删除代表该表的三个档案。
儘管可以通过删除资料库目录中的对应某个表的三个档案来删除该表,但不能手工创建或更改表。例如,如果 my_db 是当前的资料库,DROP TABLE my_tbl 大致等价于下列命令:
来自于 SHOW TABLES my_db 的输出结果正是 my_db 资料库目录中 .frm 档案基名的一个列表。某些资料库系统维护一个列出了资料库中的所有表的登记。但 MySQL 不这样做,因为没有必要,这个“登记”隐含在了数据目录的结构中。