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减树),它的数据能够存储在非叶子节点上。它也是基于二分查找。索引

      因为笔者也是初学者,对于好多东西的理解不是很深入。文中出现的错误但愿你们多谅解斧正。有对数据库感兴趣的朋友还望多多留意交流。事务

相关文章
相关标签/搜索