MySQL 存储引擎(InnoDB、MyISAM)

InnoDB

优点:

  1. InnoDB 采用MVCC 来支持高并发
  2. 支持事务(ACID)
  3. 行级锁定,通过索引实现,全表扫描仍然会锁定整个表。
  4. 支持分区、表空间
  5. 支持外键,单不支持全文索引(5.5以后不支持)
  6. 有高效的缓存,能缓存索引、数据
  7. 读写阻塞与事务隔离级别相关
  8. InnoDB 表基于聚簇索引建立,聚簇索引有很好的查询性能,不过它的二级索引(Secondary index,非主键索引)中必须包含主键列
  9. 通过一些机制可以实现热备(MySQL Enterprise Backup、Percona的 XtraBackup)

缺点:

  1. 与MyISAM 相比, InnoDB对硬件要求比较高
  2. 内部实现很复杂,不容易理解

适用场景:

  1. 支持事务的业务(下单、交易、转账等等)
  2. 读写都比较频繁的场景
  3. 数据一致性要求比较高的业务(转账、充值)
  4. 硬件设备内存较大,可以利用InnoDB较好的缓存能力来提高内存使用率,尽可能的较少磁盘的I/O
  5. 行级锁定对高并发有很好的适用能力,但需要确保查询是通过索引来来完成的。

MyISAM

优点:

  1. 支持全文索引、压缩、空间函数(GIS)
  2. 支持表锁,读取时,对表增加共享锁,写入时,对表加排他锁
  3. 只会缓存索引
  4. 读取速度较快,占用资源相对少
  5. 支持压缩表,创建并导入数据后,如果不再进行修改操作,可以采用MyISAM压缩表(如果需要再修改,需要先解压缩,再修改数据,完成后再压缩)
  6. 设计简单,数据以紧密格式存储

缺点:

  1. 不支持事务和行级锁
  2. 奔溃后无法安全恢复
  3. 存在的问题,还是表锁的问题

适用场景:

  1. 只读的数据,或者表比较小
  2. blog 、数据字典、日志等不需要事务或读多写少的功能

参考:

[1] 《高性能MySQL》
[2] https://blog.csdn.net/m0_37814112/article/details/78633136

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值