zoukankan      html  css  js  c++  java
  • 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减树),它的数据可以存储在非叶子节点上。它也是基于二分查找。

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

         

         

  • 相关阅读:
    基于VMWare配置VxWorks开发环境
    Go 方法、接口
    cgo 和 Go 语言是两码事
    MFC的回调函数
    go语言将函数作为参数传递
    nginx源码学习资源
    PYTHON 自动化运维
    LVS中文站点
    MS SQL SERVER 书BOOK
    桦仔------分享一下我研究SQLSERVER以来收集的笔记
  • 原文地址:https://www.cnblogs.com/koocookie/p/6195532.html
Copyright © 2011-2022 走看看