iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >InnoDB和MyISAM的区别
  • 895
分享到

InnoDB和MyISAM的区别

数据库mysqljava 2023-08-21 09:08:51 895人浏览 八月长安
摘要

一、数据存放结构不同 InnoDB和MyISAM是Mysql的两种存储引擎,所谓存储引擎,就是数据文件的组织方式,其最大的不同,就是数据存储的结构和方式不一样。InnoDB采用聚簇索引来存储数据,MyISAM采用非聚簇索引。 也就是说,In

一、数据存放结构不同

InnoDB和MyISAM是Mysql的两种存储引擎,所谓存储引擎,就是数据文件的组织方式,其最大的不同,就是数据存储的结构和方式不一样。InnoDB采用聚簇索引来存储数据,MyISAM采用非聚簇索引。
也就是说,InnoDB的索引和数据是关联在一起的,在B+树的根节点,而MyISAM的key-value存的是key和地址指针,其真正的文件存在于其他位置。

二、InnoDB支持事务,MyISAM不支持

三、InnoDB支持表级和行级锁,而MyISAM仅支持表级锁

表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。
行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。

(一)MyISAM的锁机制

1.读锁(共享锁)

对MyISAM表的读操作,不会阻塞其他用户对同一表的读请求,但会阻塞对同一表的写请求
在这里插入图片描述

2.写锁(独占锁)

对 MyISAM表的写操作,则会阻塞其他用户对同一表的读和写操作
在这里插入图片描述

(二)InnoDB锁机制

InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。
InnoDB行锁是通过索引实现的,InnoDB这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁!

mysql InnoDB引擎默认的修改数据语句:
update,delete,insert都会自动给涉及到的数据加上排他锁,
select语句默认不会加任何锁类型。

1.共享锁(读锁S锁)

又称读锁。
允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。
若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。

2.排他锁(写锁X锁)

允许获取排他锁的事务更新数据,阻止其他事务取得相同的数据集共享读锁和排他写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。

共享锁和排他锁的分析看这个连接

mysql InnoDB引擎默认的修改数据语句:update,delete,insert都会自动给涉及到的数据加上排他锁,select语句默认不会加任何锁类型,
如果加排他锁可以使用select …for update(不希望别的事务修改数据,其他的事务职能用不带锁的select来查询)
加共享锁可以使用select … lock in share mode语句(不希望别的数据修改数据,其他事务可以用 select … lock in share mode和select不带任何锁来查询数据)

来源地址:https://blog.csdn.net/weixin_44712778/article/details/126323844

您可能感兴趣的文档:

--结束END--

本文标题: InnoDB和MyISAM的区别

本文链接: https://www.lsjlt.com/news/376824.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • InnoDB和MyISAM的区别
    一、数据存放结构不同 InnoDB和MyISAM是Mysql的两种存储引擎,所谓存储引擎,就是数据文件的组织方式,其最大的不同,就是数据存储的结构和方式不一样。InnoDB采用聚簇索引来存储数据,MyISAM采用非聚簇索引。 也就是说,In...
    99+
    2023-08-21
    数据库 mysql java
  • InnoDB和MyISAM有什么区别
    这篇文章主要讲解了“InnoDB和MyISAM有什么区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“InnoDB和MyISAM有什么区别”吧! Inno...
    99+
    2024-04-02
  • InnoDB和MyISAM的区别是什么
    InnoDB和MyISAM的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。InnoDB和MyISAM是许多人在使用MySQL时最常用...
    99+
    2024-04-02
  • InnoDB和MyISAM有哪些区别
    这篇文章主要讲解了“InnoDB和MyISAM有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“InnoDB和MyISAM有哪些区别”吧! ...
    99+
    2024-04-02
  • MyISAM和InnoDB存储引擎的区别
    目录 前言存储引擎 区别事务外键表单的存储数据查询效率数据更新效率 如何选择 前言 MyISAM和InnoDB是使用MySQL最常用的两种存储引擎,在5.5版本之前默认采用MyISAM存储引擎,从5.5开始采用InnoD...
    99+
    2023-08-17
    数据库 mysql java
  • Mysql中MyISAM和InnoDB的区别及说明
    目录MyISAM和InnoDB的区别1. 定义2. 区别3. 使用MyISAM和InnoDB索引结构分析存储引擎作用于什么对象MyISAM和InnoDB对索引和数据的存储在磁盘上是如何体现的MyISAM主键索引与辅助索引...
    99+
    2022-12-26
    Mysql中MyISAM Mysql中InnoDB MyISAM和InnoDB的区别
  • MySQL 中 InnoDB 和 MyISAM 的区别是什么
    今天就跟大家聊聊有关MySQL 中 InnoDB 和 MyISAM 的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  InnoDB 和 ...
    99+
    2024-04-02
  • Mysql中myisam和innodb的区别有哪些
    这篇文章给大家分享的是有关Mysql中myisam和innodb的区别有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 (1)5点不同 1. 存储结构 &nb...
    99+
    2024-04-02
  • Mysql中 InnoDB和MyISAM的区别是什么
    本篇文章给大家分享的是有关Mysql中 InnoDB和MyISAM的区别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 Inn...
    99+
    2024-04-02
  • MyISAM和InnoDB的主要区别和应用场景
    主要区别: 1).MyISAM是非事务安全型的,而InnoDB是事务安全型的。 2).MyISAM锁的粒度是表级,而InnoDB支持行级锁定。 3).MyISAM支持全文类...
    99+
    2024-04-02
  • 浅谈一下MyISAM和InnoDB存储引擎的区别
    目录前言存储引擎区别事务外键表单的存储数据查询效率数据更新效率如何选择前言 MyISAM和InnoDB是使用mysql最常用的两种存储引擎,在5.5版本之前默认采用MyISAM存储引擎,从5.5开始采用InnoDB存储引...
    99+
    2023-04-28
    Mysql MyISAM Mysql InnoDB Mysql 存储引擎
  • MySQL中MyISAM与InnoDB区别是什么
    MySQL中MyISAM与InnoDB区别是什么?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!MyISAM和InnoDB的...
    99+
    2024-04-02
  • mysql中myisam与innodb的区别是什么
    MyISAM和InnoDB是MySQL数据库中两种最常用的存储引擎,它们之间有一些重要的区别: ACID属性:InnoDB支持事...
    99+
    2024-03-15
    mysql myisam innodb
  • mysql数据存储引擎InnoDB和MyISAM的优势及区别是什么
    这篇文章主要介绍“mysql数据存储引擎InnoDB和MyISAM的优势及区别是什么”,在日常操作中,相信很多人在mysql数据存储引擎InnoDB和MyISAM的优势及区别是什么问题上存在疑惑,小编查阅了...
    99+
    2024-04-02
  • 何时使用MyISAM和InnoDB?
    InnoDB是一个平衡高可靠性和性能的通用存储引擎。从MySQL 5.6开始,InnoDB是MySQL默认的存储引擎。 InnoDB 可用于多种目的。以下是其中一些 - 它可用于事务目的,即所有 ACID 属性。 InnoDB可以用于行级锁...
    99+
    2023-10-22
  • MyISAM和InnoD的基本区别
    MyISAM和InnoD的区别有:InnoDB支持事务,MyISAM不支持。InnoDB支持外键,而MyISAM不支持。InnoDB是聚集索引,而MyISAM是非聚集索引,不过都是使用B+Tree作为索引结构。Innodb不支持全文索引,而...
    99+
    2024-04-02
  • mysql和myisam有哪些区别
    今天小编给大家分享一下mysql和myisam有哪些区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2024-04-02
  • MySQL存储引擎MyISAM与InnoDB区别总结整理
    1、MySQL默认存储引擎的变迁 在MySQL 5.1之前的版本中,默认的搜索引擎是MyISAM,从MySQL 5.5之后的版本中,默认的搜索引擎变更为InnoDB。 2、MyISAM与InnoDB存储引擎...
    99+
    2024-04-02
  • MySQL的存储引擎InnoDB和MyISAM
    目录1. MyISAM底层存储1.1 MyISAM底层存储(非聚集索引方式)1.2 InnoDB底层存储(聚集索引方式)2. InnoDB与MyISAM简介3. MyISAM与Inn...
    99+
    2024-04-02
  • InnoDB和MyISAM有什么差异
    这篇文章主要讲解了“InnoDB和MyISAM有什么差异”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“InnoDB和MyISAM有什么差异”吧! ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作