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

查看当前的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工具创建,占据非常小的磁盘空间,因为每个记录是被单独要锁的,所以访问只有非常小的访问开支。

 

    

 

 

 

 

   

转载于:https://www.cnblogs.com/fangxijun/p/7739813.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值