存储引擎InnoDB和MyISAM的区别

1. MySQL的存储引擎

  1. 在设计表→选项中可以看到MySQL的存储引擎有以下这些,但是常用的有InnoDB和MyISAM这两种

  

 

 

  2. 存储引擎的特点

    1. InnoDB:支持事务和外键,具有提交,回滚和崩溃回复能力,安全性较高

    2. MyISAN:不支持事务和外键,支持全文索引,访问速度快

    3. Memory:利用内存创建表,访问速度快,支持哈希索引,一旦关闭,数据会丢失

    4. Archive:归档类型引擎,仅支持insert和select语句

    5. Csv:以csv文件进行数据存储,用于文件限制,所有列必须强制指定not null,不支持索引和分区

    6. BlackHole:黑洞,只进不出,所有插入数据不会被保存

    7. MRG_MyISAM:一组MyISAM表的组合,这些MyISAM表必须结构相同,Merge表本身没有数据,对Merge操作可以对一组MyISAM表进行操作

 

2. InnoDB和MyISAM的区别

  1. InnoDB支持事务,MyISAM不支持事务

    InnoDB每一条SQL语句都是一条事务,自动提交,安全性较高,但是影响速度

  2. InnoDB支持外键,MyISAM不支持

    InnoDB可以和其他表设置外键foreign key,保证表之间的连接性

  3. InnoDB是聚集索引,MyISAM是非聚集索引

    InnoDB的表结构保存在.frm文件中,数据和索引绑定在data下的ibdataN文件中,而MyISAM则会生成三个文件,.frm文件保存表结构,.MYD文件保存数据内容,.MYI文件保存索引

  4. InnoDB不支持全文索引,MyISAM支持全文索引

    InnoDB在MySQL5.5版本之前是不支持全文索引的,在5.6版本之后开始支持全文索引

  5. InnoDB支持表锁和行锁,MyISAM只支持表锁

    表锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低

    行锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高

posted @   无敌小豆包  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示