[转帖] MySQL常见的存储引擎InnoDB、MyISAM的区别?

mysql,常见,存储,引擎,innodb,myisam,区别 · 浏览次数 : 0

小编点评

**1)事务:**MyISAM不支持事务,InnoDB支持。 **2)锁级别:**MyISAM 表级锁,InnoDB 行级锁及外键约束。 **3)总行数:**MyISAM存储表的总行数,InnoDB不存储。 **4)索引类型:**MyISAM采用非聚集索引,B+树叶子存储指向数据文件的指针;InnoDB主键索引采用聚集索引,B+树叶子存储数据适用场景。

正文

1)事务:MyISAM不支持,InnoDB支持

2)锁级别:MyISAM 表级锁,InnoDB 行级锁及外键约束

(MySQL表级锁有两种模式:表共享读锁(Table Read Lock)和表独占写锁(Table Write Lock)。什么意思呢,就是说对MyISAM表进行读操作时,它不会阻塞其他用户对同一表的读请求,但会阻塞对同一表的写操作;而对MyISAM表的写操作,则会阻塞其他用户对同一表的读和写操作。

InnoDB行锁是通过给索引项加锁来实现的,即只有通过索引条件检索数据,InnoDB才使用行级锁,否则将使用表锁!行级锁在每次获取锁和释放锁的操作需要消耗比表锁更多的资源。在InnoDB两个事务发生死锁的时候,会计算出每个事务影响的行数,然后回滚行数少的那个事务。当锁定的场景中不涉及Innodb的时候,InnoDB是检测不到的。只能依靠锁定超时来解决。)

3)MyISAM存储表的总行数;InnoDB不存储总行数;

4)MyISAM采用非聚集索引,B+树叶子存储指向数据文件的指针。InnoDB主键索引采用聚集索引,B+树叶子存储数据

适用场景:

MyISAM适合:插入不频繁,查询非常频繁,如果执行大量的SELECT,MyISAM是更好的选择, 没有事务。
InnoDB适合:可靠性要求比较高,或者要求事务;表更新和查询都相当的频繁, 大量的INSERT或UPDATE 

与[转帖] MySQL常见的存储引擎InnoDB、MyISAM的区别?相似的内容:

[转帖] MySQL常见的存储引擎InnoDB、MyISAM的区别?

1)事务:MyISAM不支持,InnoDB支持2)锁级别:MyISAM 表级锁,InnoDB 行级锁及外键约束(MySQL表级锁有两种模式:表共享读锁(Table Read Lock)和表独占写锁(Table Write Lock)。什么意思呢,就是说对MyISAM表进行读操作时,它不会阻塞其他用户

[转帖]【建议收藏】15755 字,讲透 MySQL 性能优化(包含 MySQL 架构、存储引擎、调优工具、SQL、索引、建议等等)

https://my.oschina.net/jiagoushi/blog/5593246 0. 目录 1)MySQL 总体架构介绍 2)MySQL 存储引擎调优 3)常用慢查询分析工具 4)如何定位不合理的 SQL 5)SQL 优化的一些建议 1 MySQL 总体架构介绍 1.1 MySQL 总体

[转帖]MySQL Decimal 的实现方法

码: 背景 数字运算在数据库中是很常见的需求, 例如计算数量、重量、价格等, 为了满足各种需求, 数据库系统通常支持精准的数字类型和近似的数字类型. 精准的数字类型包含 int, decimal 等, 这些类型在计算过程中小数点位置是固定的, 其结果和行为比较可预测. 当涉及钱时, 这个问题尤其重要

[转帖]MySQL索引优化分析之性能分析(Explain执行计划)

一、MySQL常见瓶颈 二、性能分析工具Explain(执行计划 ) 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。查看官网说明: 使用: Explain + SQL语句 作用: 三、各字段解释 3.1、

[转帖]MYSQL常用的Show命令笔记

http://t.zoukankan.com/lovekingly-p-4387765.html 1、查询数据库 SHOW DATABASES; 2、查询数据库中表 SHOW TABLES; SHOW TABLES FROM db; 3、查询表索引 SHOW INDEX FROM table 4、查

[转帖]一文理清 TiDB 与 MySQL 中的常用字符集及排序规则

https://tidb.net/blog/0c5b6025 1.1. 字符集与编码规则 字符集(character set)即为众多字符的集合。字符集为每个字符分配一个唯一的 ID,称为 “Code Point(码点)”。编码规则是将 Code Point 转换为 0、 1 二进制序列的规则。通俗

[转帖]Oracle迁移到MySQL时数据类型转换问题

https://www.cnblogs.com/yeyuzhuanjia/p/17431979.html 最近在做“去O”(去除Oracle数据库)的相关工作,需要将Oracle表结构转换成MySQL的表结构。这里面最重要的一点就是字段数据类型的变化。 1.ORACLE常用的数据类型与MySQL的对

[转帖]基准测试工具

https://www.cnblogs.com/wade-luffy/p/6344097.html 目录 sysbench mysql-tpcc 基准测试工具可以用来对数据库或者操作系统调优后的性能进行对比。MySQL数据库本身提供了一些比较优秀的工具,这里介绍另外两款更优秀、更常用的工具:sysb

[转帖]decimal,float和double的区别是什么?

https://zhuanlan.zhihu.com/p/352503879 今天复习mysql理论知识,在看常用数据类型的时候发现float和decimal类型都是表示小数,就展开搜索学习了一下区别,分享给大家: 表示小数的一共有三种类型:float是单精度,double是双精度,decimal是

[转帖]Mysql 常用命令行,持续补充

https://www.cnblogs.com/wzj1223/p/13152446.html 1.常用命令行 # 登录Mysql mysql -uroot -proot # 查看所有数据库 show databases; # 选择数据库 use fids; # 查看当前数据库所有表; show t