当前位置:Gxlcms > 数据库问题 > mysql学习->存储引擎(Myisam)

mysql学习->存储引擎(Myisam)

时间:2021-07-01 10:21:17 帮助过:24人阅读

,对事务完整性没有要求或者以SELECT,INSERT为主的应用基本上都可以使用这个引擎来创建表

  每个Myisam引擎在磁盘上存储成3个文件,其文件名都和表名相同,但扩展名分别是

    .frm(存储定义)

    .MYD(MYDdata,存储数据)

    .MYI(MYIndex,存储索引)

  数据文件和索引文件可以放置在不同的目录,平均分布IO,获得更快的速度

  要制定索引文件和数据文件的路径,需要在创建表的时候通过DATA DIRECTORY和INDEX DIRECTORY语句指定,也就是说不同Myisam表的索引文件和数据文件可以放置到不同的路径下,文件路径需要的是绝对路径,并且具有访问权限

  注意:Myisam类型的表可能会损坏,原因会有很多种,损坏后的表不能访问,会提示需要修复或者访问后返回错误结果,可以使用CHECK TABLE语句来检查Myisam表的健康,并用REPAIR TABLE 语句修复一个损坏的Myisam表。

  Myisam引擎的表还支持3种不同的存储格式

    静态(固定长度)表:静态表为默认的存储格式,静态表中的字段都非变长字段,都是固定长度,优点是存储非常迅速,容易缓存,出现故障容易回复,缺点是占用的空间比动态多,静态表的数据会根据列的宽度来补足空格,但是在应用访问的时候不会得到这些空格~

    最值得注意的是如果需要保存的内容后面本来就带有空格,那么在返回的时候也会被去掉

     技术分享

  动态表中包含变长字段,记录不是固定长度的,这样存储的优点是占用的空间相对较少,但是长期频繁的更新和删除记录会产生碎片,需要定期执行OPTIMIZE TABLE语句或myisamchk-r命令来改善性能,并且在出现故障时恢复相对比较困难

  压缩表myisampack工具创建,占据非常小的磁盘空间,因为每个记录是被单独要锁的,所以访问只有非常小的访问开支。

 

    

 

 

 

 

   

mysql学习->存储引擎(Myisam)

标签:led   动态表   内存   静态   air   错误   两种   缺点   isa   

人气教程排行