|
网站首页
|
JAVA文章
|
AppServers
|
Web开发
|
应用开发
|
资源下载
|
想学好编程,外语很重要,最新的编程技术还是在国外 [enadd 2006年12月25日]
设为首页
加入收藏
联系站长
您现在的位置:
编程笔记网
>>
数据库
>>
mysql
>>
使用实例
>> 文章正文
MySQL数据目录结构(1)
【字体:
小
大
】
MySQL数据目录结构(1)
作者:不详 文章来源:网络 点击数: 更新时间:2007-1-21
SHOWDATABASE基本上不做什么,只是列出位于数据目录中的目录名。有些
数据库
系统保持一个主表,用于维护所有
数据库
,但在MySQL无此构件。由于赋予数据目录结构的简洁性,
数据库
列表隐含在数据目录的内容中,而且这样的表不必有额外的开销。
2.3
数据库
表的表示
每个
数据库
在
数据库
目录中有3个文件:一个样式(描述文件)、一个数据文件和一个索引文件。每个文件的基本名是表名,文件名扩展名代表文件类型。扩展名如下表。数据和索引文件的扩展名指出表使用老式IASM索引或新式MyISAM索引。表MySQL文件类型
文件类型文件名扩展名文件内容
样式文件.frm描述表的结构(它的列、列类型、索引等)。
数据文件.ISD(ISAM)
或.MYD(MyISAM)包含数据文件上的所有索引的索引树。
索引文件.ISM(ISAM)
或.MYI(MyISAM)该索引文件依赖表是否有索引而存在。
当你发出一条CREATETABLEtbl_name时语句定义表的结构时,服务器创建一个名为tbl_name.frm的文件,它包括该结构的内部编码,同时也创建一个空数据和索引文件,初始化为包含指出无记录和无索引的信息(如果CREATETABLE语句包括索引指定,索引文件反映出这些索引)。对应于表的文件的属主和模式被设置为只允许MySQL服务器用户访问。
当你发出一条ALTERTABLEtbl_name语句时,服务器重新编码tbl_name.frm,并修改数据和索引文件的内容以反映语句指定的结构改变。对于CREATEINDEX和DROPINDEX也是一样,因为它们被服务器视为与ALTERTABLE等价。DROPTABLE通过删除对应于表的三个文件来实现。
虽然你可以通过删除
数据库
目录中对应于表的三个文件,但不能手工创建或修改一个表,如,如果my_db是当前
数据库
,DROPTABLEmy_tbl大概等价于下列命令。
%rm-rfDATADIR/my_db/my_tbl.*
SHOWTABLEmy_db的输出只是列出my_db
数据库
目录中的.frm文件的基文件名。有些
数据库
系统一个注册表,列举所有包含在一个
数据库
中的表,MySQL不是,因为不必要,“注册表”隐含在数据目录的结构中。
2.4操作系统对
数据库
和表命名的限制
MySQL对命名
数据库
和表有一个原则:
名字可以由当前字符集中的任何字母数字字符组成,下划线和美元符$也可以。
名字最长为64个字符。
然而,因为
数据库
和表的名字对应于目录和文件名,服务器运行的操作系统可能强加额外的限制。
首先,
数据库
和表名仅限于对文件名合法的字符,如$在MySQL的原则中是允许的,但是如果你的操作系统不允许,则你不能在目录或表名中使用它。实际上,这对Unix或Windows不是所担心的,最大的难度是在执行
数据库
管理时直接在shell中引用名字,例如,如果你命名一个
数据库
如$my_db,包含一个美元符,任何从shell中对该名字的引用可能被shell解释为对一个变量的引用:
%ls$my_db
my_db:undefinedvariable
对此,你必须转义$字符或用引号禁止其特殊含义:
%ls\$my_db
%ls$my_db
如果你用引号,一定要用单引号,而双引号并不禁止变量解释。
其次,虽然MySQL允许
数据库
和表名最长到64个字符,但名字的长度受限于你的操作系统限定的长度,一般这不是一个问题(虽然老的SystemV强制14个字符)。在这种情况下,你
数据库
名的上限为14个字符,而表名上限为10个字符,因为表示表的文件名有一个点(.)和三个字符的扩展名。
第三,文件系统的大小写敏感性影响到你如何命名和引用
数据库
和表名。如果文件系统是大小写敏感的(如Unix),两个名字my_tbl和MY_TBL是不同的表。如果文件系统不是大小写敏感的(如Windows),这两个名字指的是相同的表。如果你用一个Unix服务器开发
数据库
,并且如果你有可能转移到Windows,你应该记住这一点。
2.5MySQL状态文件
除了
数据库
目录,MySQL数据目录还包含很多状态文件,这些文件总结在下表中。大多数文件的缺省名从服务器主机名生成,在下表中表示为HOSTNAME。表MySQL状态文件
文件类型缺省名文件内容
进程IDHOSTNAME.pid服务器进程的ID
出错日志HOSTNAME.err启动和关闭事件和出错情况
一般日志HOSTNAME.log连接/断开事件和查询信息
更新日志HOSTNAME.nnn修改表结构级内容的所有查询文本
当服务器启动时,它将其进程ID写入进程ID(PID)文件中,而在它关闭时,删除该文件。PID文件是允许服务器本身被其他进程找到的工具。例如,如果你运行
sql
/Index.html'>my
sql
.server,在系统关闭时,关闭MySQL服务器的脚本检查PID文件以决定它需要向哪个进程发出一个终止信号。
出错日志由safe_
sql
/Index.html'>my
sql
d创建,作为服务器标准出错输出的重定向,它包含任何邪到stderr的消息。这意味着只有你通过调用safe_
sql
/Index.html'>my
sql
d启动服务器,出错文件才存在(无论如何,它是一个启动服务器的最好方法,因为如果它由于出错而退出,safe_
sql
/Index.html'>my
sql
d将重启服务器。)
上一页
[1]
[2]
[3]
[4]
下一页
文章录入:enadd 责任编辑:enadd
上一篇文章:
MySQL 安装与使用
下一篇文章:
MySQL数据目录结构(2)
【
发表评论
】【
加入收藏
】【
告诉好友
】【
打印此文
】【
关闭窗口
】
最新热点
最新推荐
相关文章
MySQL数据的导出和导入工具:…
mysql授课大纲
mysql技巧总结
PPTP + MPPE + RADIUS + MyS…
使用函数递归实现基于php和M…
基于MySQL的高性能数据库应用…
Mysql日期和时间函数
深圳讯天 mysql 服务器错误分…
几分钟让你走进mysql的门
针对 Apache 2.x 的 MySQL 用…
网友评论:
(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
|
设为首页
|
加入收藏
|
联系站长
|
友情链接
|
版权申明
|
管理登录
|
Copyright ©2000 - 2005
Enadd
.com
备案序号:辽ICP备06005595号
站长:
enadd