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

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

83e71f3ef7f56733992f8d9e8093f929.png

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

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

b1f405101f297a1b97c821415f71cc55.png

可以用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种不同的存储格式

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

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

41464b6c85d5bb6b076c9f33d50c619a.png

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

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值