码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2017-10-27 02:00:21      阅读:296      评论:0      收藏:0      [点我收藏+]

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

查看当前的mysql存储引擎:show engines \G或者show variables like ‘have%‘;

  技术分享

以上两种方法查看当前的数据库支持哪些存储引擎,其中DISAVLED的记录表示支持该存储引擎,但是数据库启动的时候被禁用

在创建新表的时候可以通过ENGINE关键字来设置新建表的存储引擎,不设置的时候会默认当前数据库默认的引擎,可以设置的

技术分享

可以用alter table 数据库定义语句来修改引擎:alter table t1 engine = innodb;

存储引擎之间的区别

特点

Myisam

innodb

MENORY

MERGE

NDB

存储限制 64TB 没有
事务安全   支持      
锁机制 表锁 行锁 表锁 表锁 行锁
B树索引 支持 支持 支持 支持 支持
哈希索引     支持   支持
全文索引 支持        
集群索引   支持      
数据缓存   支持 支持   支持
索引缓存 支持 支持 支持 支持 支持
数据可压缩 支持        
空间使用 N/A
内存使用 中等
批量插入的速度
支持外键   支持      

Myisam引擎:

  Myisam是mysql的默认引擎,Myisam不支持事务,也不支持外键,其优势是访问的速度,对事务完整性没有要求或者以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   

原文地址:http://www.cnblogs.com/fangxijun/p/7739813.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!