InnoDB和MYISAM区别

今天复习了Mysql数据库的引擎

那么什么是数据库引擎呢?

首先我们要先知道
    数据库和数据库实例的概念区别:
            数据库就是文件的集合。
            数据库实例就是应用程序(进程/线程),位于用户和操作系统之间的数据库管理软件,是真正操作数据库文件的。
            故Mysql不能简单的解释成数据库。

下面就来说说常见的innoDB和MYISAM的区别

**支持事务:**
         innoDB支持事务,并且实现了标准的四种隔离级别
         MYISAM不支持事务
 **锁及外键:**
         innoDB支持行级锁,支持外键约束(行级锁不是绝对的)
         MYISAM支持表级锁,不支持外键
 **保存行数:**
         innoDB不保存行数,count(*)时需要扫描全表
         MYISAM保存行数,直接读取即可
  **缓冲池:**
         innoDB会在内存建立缓冲池,存储缓冲数据和索引
         MYISAM无
**索引限制:**
         innoDB不支持全文索引
         MYISAM支持全文索引,要求主索引唯一
**索引结构:**
         innoDB索引结构时B+树,数据域存储实际数据(聚集索引),必须有主键,主键非递增/减时效率很低
         MYISAM索引结构B+树,数据域存储数据地址(非聚集索引),不要求主键
**辅助索引:**   
          innoDB辅助索引先根据辅助索引找到主键,再根据主键索引找到实际数据,所以建议主键不要过长
          MYISAM主索引key唯一,辅助索引可以重复
适用情景:
         innoDB使用高并发,大容量,插入删除等操作多时
         MYISAM使用与查询操作多时

还需要注意innoDB的几个锁:

   行级锁:  共享锁(读锁)   排他锁(写锁)
   意向锁:(表) 意向共享锁(数据行加共享锁前必须先取得该表的IS锁 )   
                意向排他锁(表中几行排他锁)
事务:
   redo恢复已提交事务,每次事务提交将日志持久化
   undo回滚操作,每次事务提交将数据持久化,逻辑的恢复数据修改前的状态,不是物理恢复。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值