美文网首页
Mysql索引引擎InnoDB 与MyISAM(简单对比)

Mysql索引引擎InnoDB 与MyISAM(简单对比)

作者: _River_ | 来源:发表于2021-05-30 23:35 被阅读0次
    Mysql 的默认索引引擎(表级别设置)为InnoDB,而MyISAM则需要指定设置
    现在基本上都是使用InnoDB作为Mysql的索引引擎
    
    1:存储
    InnoDB(索引组织表)索引就是数据,顺序存储,因此能缓存索引,也能缓存数据
    MyISAM(堆组织表)索引和文件分开,随机存储,只能缓存索引
    
    2:事务
    InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力和多版本并发的事务安全,包括ACID。
    如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能
     
    MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。
    如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择
    
    3:并发
    InnoDB 读写阻塞与事务隔离级别相关
    MyISAM读写互相阻塞:不仅会在写入的时候阻塞读取,MyISAM还会在读取的时候阻塞写入,但读本身并不会阻塞另外的读
    
    4:锁级别
    mysql支持三种锁定级别,行级、页级、表级;
    
    InnoDB支持行级锁,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,注意间隙锁的影响
    InnoDB同样的支持表级锁
    
    MyISAM仅支持表级锁定
    

    相关文章

      网友评论

          本文标题:Mysql索引引擎InnoDB 与MyISAM(简单对比)

          本文链接:https://www.haomeiwen.com/subject/ljhvsltx.html