mysql isam 食物_MySQL常用存储引擎之MyISAM

MyISAM是MySQL早期的默认存储引擎,主要特点是不支持事务但速度快。其使用表级锁定,不适用于高并发读写场景。MyISAM支持全文索引和空间函数,适合非事务型应用、只读类应用及空间数据存储。表由MYD和MYI文件组成,可进行压缩以减少磁盘IO。当表损坏时,可以使用CHECK TABLE和REPAIR TABLE进行修复,但可能造成数据丢失。
摘要由CSDN通过智能技术生成

1. mysql 5.5之前版本默认存储引擎

1.1 因为这个原因现在还有大量服务器在使用这myisam引擎的表

1.2 myisam是mysql大部分系统表和临时表使用的存储引擎

8870c15f4c8c5347a687c4395f4068ee.png

2. myisam存储引擎表由myd和myi组成

2.1 myd存储数据信息

2.2 myi存储索引信息

2.3 frm记录表结构的,所有存储引擎都有的

e68fa30c545e89d1f38f7c81ad248199.png

3. 特性

3.1 并发性与锁级别

myisam使用的是表级锁, 而不是行级锁。这也就意味着对表数据进行修改时,需要对整个表进行加锁。而在对表中的数据进行读取时,也需要对所有表加共享锁。所以,使用myisam存储引擎的表,读取和写入这两种操作是互斥的。当然,在一些情况下,当我们对表中的数据进行读取时,也可以在表的末尾插入数据。因此,myisam对读写混合的并发性不是很好。如果知识制度的操作的话,就并发性而言,性能还是可以接受的。因为共享锁并不会阻塞共享锁。

3.2 表损坏修护

支持对意外关闭的表进行检查和修护操作,这里提到的修护,并不是事务恢复。因为myisam并不是一种事物存储引擎,所以它不可能提供事务恢复所需要的相关日志。所以注意了,对myisam表做数据恢复,可能会造成数据的丢失。对有问题的表可以使用

check table tablename 进行检查

repair table tablename 进行修护

2b08d870b318309d9224a7421cb29e45.png

除了上诉命令,mysql还提供了修护工具,叫做myisamchk( 如果使用,则需要停止mysql服务),如果不停止使用这个工具,可能造成更大的损坏。

3.3 myisam表支持的索引类型

myisam表支持全文索引,是 mysql5.7之前唯一支持全文索引的官方存储引擎。支持text或block等字段前500个字符的前缀索引,若果myisam是一张很大的只读表的话,在表创建完,导入数据后,就不会在对表进行任何修改操作,那么我们可以对这样的表进行压缩操作,这样可以减少磁盘io。

3.4 myisam表支持数据压缩

对于表中数据压缩是独立进行压缩的,所以在读取单行数据的时候,不必对整个表来进行解压

myisampack 压缩表

3440e5325097658c84b4f2123efee870.png

4. 限制

4.1 版本< mysql5.0时默认表大小为4g

若果存储大表则要修改 max_rows 和 avg_row_length , 这两个数相乘的大小,就是表达到的大小。对于大表来说,修改这两个参数会导致表重建,可能需要一些时间。

4.2 版本 >mysql5.0时默认支持为256tb

5. 适用场景

5.1 非事务型应用

myisam本身时一种非事务型存储引擎,也就是说myisam是不支持事务的。

5.2 只读类应用

因为可以对表进行压缩,压缩后只读。

5.3 空间类应用

在mysql5.7之前,myisam是唯一支持空间函数的存储引擎。如果需要存储空间类数据,使用空间函数,只能使用myisam存储引擎。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值