数据文件 ISD(ISAM)
或MYD(MyISAM) 包含数据文件上的所有索引的索引树
索引文件 ISM(ISAM)
或MYI(MyISAM) 该索引文件依赖表是否有索引而存在
当你发出一条CREATE TABLE tbl_name时语句定义表的结构时服务器创建一个名为tbl_namefrm的文件它包括该结构的内部编码同时也创建一个空数据和索引文件初始化为包含指出无记录和无索引的信息(如果CREATE TABLE语句包括索引指定索引文件反映出这些索引)对应于表的文件的属主和模式被设置为只允许MySQL服务器用户访问
当你发出一条ALTER TABLE tbl_name语句时服务器重新编码tbl_namefrm并修改数据和索引文件的内容以反映语句指定的结构改变对于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对命名数据库和表有一个原则
名字可以由当前字符集中的任何字母数字字符组成下划线和美元符$也可以
[] [] [] [] [] [] [] [] [] []