mysql存储引擎 innodb 和myisam区别

谈谈mysql存储引擎 innodb和myisam区别!

他们两区别点非常多,记忆挺困难点。但核心设计理念不同。innnodb 更多考虑事务,做了数据一致性和原子性设计。而,myisam不支持事务仅需要考虑更快更好读取数据。

myisam

设计出发点

不支持事务,更多考虑数据读取性能

innodb

设计出发点

支持事务,更多考虑数据一致性原子性

myisam 

特点

核心特点不支持事务,所以有以下特点

  1. 主键不是必须设置  
  2. 不支持外键
  3.  仅支持表锁,不支持行锁
  4. 索引不同
    1. 有3个文件。 表结构、数据文件、索引文件
    2. b+树叶子节点存储数据文件指针
    3. 二级索引叶子节点存储数据文件指针

更好的读取数据性能

  1. 有一个变量保存表行总数。查询select count from table 将取出该值。
  2. 支持全文检索

innodb 

特点

核心特点支持事务,更多考虑数据一致性原子性。所以有以下特点

  1.  必须要有主键,若未设置。mysql将为我们生成6byte长度的int类型的字段作为主键
  2. 支持外键
  3. 支持表锁还是支持行锁、间隙锁
  4. 索引不同
    1. 有2个文件,表结构、索引文件(索引和数据)
    2. 聚簇索引叶子节点存储主键id,非聚簇索引存储聚簇索引主键

读取数据性能不如myisam

1. 每条sql都自成一个事务,自动提交。有开销

2. 没有变量保存表总数。

   

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jiguansheng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值