InnoDB和MyISAM存储引擎的区别

本文对比了MySQL中两种主流存储引擎InnoDB与MyISAM的特点与应用场景。InnoDB支持事务、行级锁和外键,适用于在线事务处理;而MyISAM采用表级锁,适合用于大量查询操作。

      在MySQL数据库的使用过程中我们经常会听到存储引擎这个名词。MySQL的存储引擎有好多种如InnoDB、MyISAM、Memory、NDB等等,多存储引擎也是MySQL数据库的特色。

      InnoDB和MyISAM存储引擎是MySQL数据库中经常使用的引擎,下面就将介绍下它们的功能特性。

     

      InnoDB:支持事务面向在线事务处理(OLTP),基于磁盘存储按照页的方式进行管理。在存储过程中如果没有显式定义表主键则会自动生成6字节的ROWID并以此为主键。

      特点:行锁设计、支持外键、支持全文索引、支持非锁定读、支持MVCC(多版本并发控制)。

      功能:插入缓存、二次写、自适应哈希索引、预读等等。

     

      InnoDB的体系架构:线程、内存池、文件。后台线程的作用负责刷新内存池中数据,将数据刷新到磁盘文件。

      它的数据结构是棵B+树。非叶子节点存放的是索引,数据都在叶子节点上。在数据查找时基于二分查找法。支持的索引有B+树、全文索引、哈希索引(自适应,不可人为干预)。

       

      MyISAM:不支持事务、支持全文索引、表锁设计面向联机分析处理(OLHP)。它的缓冲池只缓存索引文件而不缓冲数据文件。数据文件的缓存由操作系统完成。

      它的数据结构是棵B-树(B树不叫B减树),它的数据可以存储在非叶子节点上。它也是基于二分查找。

      由于笔者也是初学者,对于好多东西的理解不是很深刻。文中出现的错误希望大家多谅解斧正。有对数据库感兴趣的朋友还望多多留意交流。

     

     

 

转载于:https://www.cnblogs.com/koocookie/p/6195532.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值