上篇文章《MySql逻辑结构简介》我们聊到了存储引擎,可以说MySQL可插拔的多元化存储引擎给我们的使用者带来了很灵活的选择。

这篇文章我们来聊一下目前主流的两种存储引擎MyISAM和InnoDB的区别。

  MyISAM InnoDB
外键 不支持 支持
事务 不支持 支持
锁表 表锁,即使操作一条记录也会锁住整个表,不适合高并发的操作 行锁,操作时只锁某一行,不对其它行有影响,适合高并发的只操作
缓存 只缓存索引,不缓存真实数据 不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响
占用空间 表空间占用小 表空间占用大
关注点 性能,查询速度快 事务

阿里巴巴,淘宝用哪个?
前期:阿里巴巴大部分MySQL数据库其实使用的是Percona的Xtradb原型加以修改。

Percona公司为MySQL数据库服务器进行了改进,新建了一款存储引擎叫Xtradb,这款存储引擎从性能上完全可以替代Innodb,在功能和性能上较MySQL有着很显著的提升,

该版本提升了在高负载情况下的InnoDB的性能,为DBA提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为。

现在:2016年云栖大会·北京峰会上,阿里云宣布启动了 AliSQL、AliRedis 开源项目,AliSQL是基于MySQL官方版本的一个分支,由阿里云数据库团队维护,目前也应用于阿里巴巴集团业务以及阿里云数据库服务。

AliSQL的出现不仅从其他开源分支比如:Percona,MariaDB,WebScaleSQL等社区汲取精华,也沉淀了阿里巴巴多年在MySQL领域的经验和解决方案。该版本在社区版的基础上做了大量的性能与功能的优化改进,尤其适合电商、云计算以及金融等行业环境,针对电商秒杀场景,AliSQL有着特殊的优化,“在通用基准测试场景下,AliSQL版本比MySQL官方版本有着 70% 的性能提升,在秒杀场景下,性能提升 100倍”,可帮助中小企业和开发者提升数据运营能力。

总结:

通常在企业中,我们会使用InnoDB存储引擎,因为它支持事务,支持行锁,高并发处理性能更好,CPU及内存缓存页优化使得资源利用率更高。

对于那种只需要较高的查询速度,没有什么其它特殊要求的,可以选择MyISAM存储引擎。

但是需注意:

MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1000字节。另外MyISAM数据和索引是分开,而InnoDB的数据存储是按聚簇(cluster)索引有序排列的,主键是默认的聚簇(cluster)索引,因此MyISAM虽然在一般情况下,查询性能比InnoDB高,但InnoDB的以主键为条件的查询性能是非常高的。

MySQL存储引擎简介-MyISAM和InnoDB的区别的更多相关文章

  1. MySQL存储引擎:MyISAM和InnoDB的区别

    MyISAM和InnoDB的区别 定义 InnoDB:MySQL默认的事务型引擎,也是最重要和使用最广泛的存储引擎.它被设计成为大量的短期事务,短期事务大部分情况下是正常提交的,很少被回滚.InnoD ...

  2. MySQL存储引擎之Myisam和Innodb总结性梳理

    Mysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比   MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始 ...

  3. mysql存储引擎之MyISAM 和 InnoDB的比较

    一.什么是存储引擎 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和 ...

  4. MySQL存储引擎之Myisam和Innodb总结性梳理-转

    原文链接:https://www.cnblogs.com/kevingrace/p/5685355.html 谢谢楼主 Mysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比 ...

  5. (转)MySQL数据库引擎ISAM MyISAM HEAP InnoDB的区别

    转自:http://blog.csdn.net/nightelve/article/details/16895917 MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎 ...

  6. 第 3 章 MySQL 存储引擎简介

    第 3 章 MySQL 存储引擎简介 前言 3.1 MySQL 存储引擎概述 MyISAM 存储引擎是 MySQL 默认的存储引擎,也是目前 MySQL 使用最为广泛的存储引擎之一.他的前身就是我们在 ...

  7. MySQL性能调优与架构设计——第3章 MySQL存储引擎简介

    第3章 MySQL存储引擎简介 3.1 MySQL 存储引擎概述 MyISAM存储引擎是MySQL默认的存储引擎,也是目前MySQL使用最为广泛的存储引擎之一.他的前身就是我们在MySQL发展历程中所 ...

  8. mysql 存储引擎简介

    几个常用存储引擎的特点 下面我们重点介绍几种常用的存储引擎并对比各个存储引擎之间的区别和推荐使用方式. 特点 Myisam BDB Memory InnoDB Archive 存储限制 没有 没有 有 ...

  9. 为什么用B+树做索引&MySQL存储引擎简介

    索引的数据结构 为什么不是二叉树,红黑树什么的呢? 首先,一般来说,索引本身也很大,不可能全部存在内存中,因此索引往往以索引文件的方式存在磁盘上.然后一般一个结点一个磁盘块,也就是读一个结点要进行一次 ...

随机推荐

  1. Hadoop源代码点滴-文件系统HDFS

    HDFS是Hadoop集群的文件系统,这是一种分布(distributed).容错(fault tolerant)的文件系统 所谓分布,是说整个文件系统的内容并非集中存储在一台或几台“文件服务器上”, ...

  2. node学习笔记(一)本地文件目录查看器

    Node.js 新闻 nw.js 前端开发桌面应用 内容 node.js实战 照例提供百度云链接,本来以为是实战系列的那本,但不是,不过这本也不错 链接:https://pan.baidu.com/s ...

  3. 更该clover软件图标(任务栏显示)

    1.首先介绍一个Clover软件,Clover 的功能就是给资源管理器加上 Chrome 一样的标签页,像下面这样,你会爱上它的效率,和浏览器一样的操作方式. 2.它自带的系统图标比较丑(虽然作者说挺 ...

  4. 【Spring Boot源码分析】@EnableAutoConfiguration注解(一)@AutoConfigurationImportSelector注解的处理

    Java及Spring Boot新手,首次尝试源码分析,欢迎指正! 一.概述 @EnableAutoConfiguration注解是Spring Boot中配置自动装载的总开关.本文将从@Enable ...

  5. Redis未授权访问漏洞复现

    Redis未授权访问漏洞复现 一.漏洞描述 Redis默认情况下,会绑定在0.0.0.0:6379(在redis3.2之后,redis增加了protected-mode,在这个模式下,非绑定IP或者没 ...

  6. JPG和PNG特性分析及适用范围

    个人博客: http://mcchen.club JPG的特性   ----有损压缩 1.支持摄影图像或写实图像的高级压缩,并且可利用压缩比例控制图像文件大小. 2.有损压缩会使图像数据质量下降,并且 ...

  7. 扛住阿里双十一高并发流量,Sentinel是怎么做到的?

    Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景 本文介绍阿里开源限流熔断方案Sentinel功能.原理.架构.快速入门以及相关框架比较 基本介绍 1 名词解释 服务限流 :当系 ...

  8. margin和text-align实现水平居中的区别

    1.首先text-align只应用于内联块和内联元素 text-align影响的是元素中的文本内容的对其方式(默认是left,设置为center时水平居中) 所以,将text-align设置为cent ...

  9. 深入理解C# 委托(delegate)-戈多编程

    今天来谈谈委托,深入理解委托,本文来自各大神经验总结. 1.委托是什么? 委托类型的声明与方法签名相似. 它有一个返回值和任意数目任意类型的参数,是一种可用于封装命名方法或匿名方法的引用类型. 委托类 ...

  10. 运维自动化神器ansible之user模块

    运维自动化神器ansible之user模块 一.概述   user模块 可管理远程主机上的 用户,比如创建用户.修改用户.删除用户.为用户创建密钥对等操作. 二.参数介绍   name: 用于指定操作 ...