) engine=myisamdata directory = ‘/opt/data’ index directory = ‘/opt/index’注意:选择的data和index的目录需要是绝对路径,且一定要保证当前启动mysql服务的用户对其有写权限,否则会提示错误。
MySQL存储引擎特性介绍之MyISAM
原创
©著作权归作者所有:来自51CTO博客作者yubowei的原创作品,请联系作者获取转载授权,否则将追究法律责任
MyISAM在MySQL 5.1中是默认的存储引擎。MyISAM不支持事务,不支持外键,它的优势是访问速度快,对事务完整性没有要求或者以SELECT、INSERT为主的应用基本上都可以使用这个引擎来创建表。一般的互联网网站大部分都是以查询为主,可以使用该引擎。
每个MyISAM类型的表在磁盘上存储成3个文件,其文件和表名相同,但是扩展名分别是:
1).frm(存储表定义);
2) .MYD(my data,存储表数据)
3) .MYI(my index,存储索引信息,myisam表使用B型树索引)
创建MyISAM类型的表时,数据库文件和索引文件可以放置在不同的目录,以平均分布I/O,获得更快的速度,
CREATE TABLE MYISAM_TEST(
id int auto_increment not null , primary key(id)
MyISAM类型的表可能会损坏,原因有多种,损坏后的表可能不能被访问,会提示需要修复或者访问后返回错误的结果。
MyISAM类型的表提供修复的工具,用CHECK TABLE语句检查MyISAM表的健康,并用REPAIR TABLE语句修改一个损坏的MyISAM表。表损坏可能导致数据库异常重新启动等。
MyISAM表支持3钟不同的存储格式:静态表(固定长度),动态表,压缩表。
其中,静态表是默认的存储格式,在静态表中各种字段都是非变长字段(不包括变量长度列,如VARCHAR,BLOB,TEXT类型的列),这样每条记录都是固定长度的。该存储方式的优点是存储非常迅速,容易缓存,出现故障容易恢复,缺点是占用的空间比动态表多。静态表的数据在存储的时候会按照列的宽度定义补足空格,但是在应用访问的时候并不会得到这些空格,这些空格在应用之前已经去掉了。(要注意的是,如果保存的内容后面本来就带有空格,那么返回结果的时候也会被去掉)
动态表是表中含有不固定长度(如varchar,blob,text等)列的表,优点是占用的存储空间比较少,但是频繁的更新删除记录会产生碎片,要定期optimize tbale 语句或myisamchk -r来检查优化表,另外动态表在出现故障的时候恢复比较困难。
压缩表是有Myisampack工具创建,占据非常小的存储空间。已压缩表是只读格式的,已压缩表可以用myisamchk来解压缩。
上一篇:MySQL存储引擎介绍

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
61 mysql 存储引擎之动态格式 MyISAM
我们这里来看一下 MyISAM 存储引擎, 我们常见的那些 user, db, table_priv, proc 等等是基于 MyISAM这是我们经常会提
mysql dynamic MyISAM 数据 存储引擎