MySQL存储引擎及InnoDB并发控制介绍

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

 

MySQL存储引擎采用了可插拔的结构,即用户可以根据自己的需要来选择不同的存储引擎。
下表是MySQL不同的存储引擎的不同的特性:

Feature
MyISAM
BDB
Memory
InnoDB
Archive
NDB
Storage limits
256TB
No
Yes
64TB
No
384EB [4]
Transactions
No
Yes
No
Yes
No
Yes
Locking granularity
Table
Page
Table
Row
Row
Row
MVCC (snapshot read)
No
No
No
Yes
Yes
No
Geospatial support
Yes
Yes [1]
No
Yes [1]
Yes [1]
Yes [1]
B-tree indexes
Yes
Yes
Yes
Yes
No
Yes
Hash indexes
No
No
Yes
No
No
Yes
Full-text search indexes
Yes
No
No
No
No
No
Clustered indexes
No
Yes
No
Yes
No
No
Data caches
No
Yes
N/A
Yes
No
Yes
Index caches
Yes
Yes
N/A
Yes
No
Yes
Compressed data
Yes
No
No
No
Yes
No
Encrypted data [2]
Yes
Yes
Yes
Yes
Yes
Yes
Cluster database support
No
No
No
No
No
Yes
Replication support [3]
Yes
Yes
Yes
Yes
Yes
Yes
Foreign key support
No
No
No
Yes
No
No
Backup / point-in-time recovery [3]
Yes
Yes
Yes
Yes
Yes
Yes
Query cache support
Yes
Yes
Yes
Yes
Yes
Yes
Update statistics for data dictionary
Yes
Yes
Yes
Yes
Yes
Yes

下面列举几个常用的存储引擎:
l          MyISAMMySQL默认的存储引擎,它主要用于大多数的Web、数据仓库和其它应用中。可以通过数据库配置文件中的storage_engine选项来改变默认的存储引擎。
l          InnoDB:主要用于事务处理应用,并且支持事务的ACID特性和外键。
l          BDB:支持COMMITROLLBACK和其它事务特性。
在创建表或修改表的时候,都可以指定需要使用的存储引擎:

 

 

 

 
InnoDBBDBInnoDB
InnoDBMVCCCOMMIT, ROLLBACKsvepoints
BDBCOMMITROLLBACK
MySQLInnoDB
InnoDBInnoDBInnoDBMyISAM
InnoDBrowid
 
InnoDB
 
l          S
l          X
T1t
l          T2tST1T2tS
l          T2tX
T1tXt
InnoDB
l          ISTTS
l          IXTTX
l          SIS
l          XIX
1,0

 
X
IX
S
IS
X
0    
0
0
0
IX
0
1
0
1
S
0
0
1
1
IS
0
1
1
1

 
InnoDBREPEATABLE READInnoDBSQL
 
InnoDBSELECT
REPEATABLE READ
DROP TABLE ALTER TABLEDROP TABLEMYSQLALTER TABLEMYSQL
Next-Key Locking
InnoDBnext-key lockingSX
InnoDBgapRSXR
 
 
InnoDB
InnoDB6-byte7-byte(roll pointer)undoundo
InnoDBundo
undoInnoDB
undo


本文转自holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/370158
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 关系型数据库 MySQL
MySQL InnoDB数据存储结构
MySQL InnoDB数据存储结构
|
1月前
|
存储 缓存 关系型数据库
MySQL的varchar水真的太深了——InnoDB记录存储结构
varchar(M) 能存多少个字符,为什么提示最大16383?innodb怎么知道varchar真正有多长?记录为NULL,innodb如何处理?某个列数据占用的字节数非常多怎么办?影响每行实际可用空间的因素有哪些?本篇围绕innodb默认行格式dynamic来说说原理。
834 6
MySQL的varchar水真的太深了——InnoDB记录存储结构
|
15天前
|
存储 关系型数据库 MySQL
MySQL引擎对决:深入解析MyISAM和InnoDB的区别
MySQL引擎对决:深入解析MyISAM和InnoDB的区别
31 0
|
1天前
|
存储 缓存 关系型数据库
MySQL 存储引擎
MySQL 存储引擎
16 6
|
2天前
|
负载均衡 关系型数据库 MySQL
MySQL-Proxy实现MySQL读写分离提高并发负载
MySQL-Proxy实现MySQL读写分离提高并发负载
|
17天前
|
存储 缓存 关系型数据库
mysql存储引擎
mysql存储引擎
|
27天前
|
缓存 算法 关系型数据库
MySQL是如何进行并发控制的?
MySQL 采用了多种并发控制机制来管理并发访问,确保数据的一致性和正确性。以下是一些常见的并发控制方法: 1. **锁机制**:MySQL 使用锁来控制对数据的并发访问。常见的锁类型包括共享锁(Shared Lock)和排他锁(Exclusive Lock)。共享锁用于读取数据,允许多个事务同时读取,但阻止其他事务进行写操作。排他锁用于写入数据,会阻塞其他事务的读写操作。 2. **隔离级别**:MySQL 支持不同的隔离级别,如读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)等。隔离级别决定了并发事务之间的可见性和冲突
|
2天前
|
SQL 存储 关系型数据库
MySQL Cluster集群安装及使用
MySQL Cluster集群安装及使用
|
18天前
|
关系型数据库 MySQL 数据库
mysql卸载、下载、安装(window版本)
mysql卸载、下载、安装(window版本)
|
7天前
|
关系型数据库 MySQL 数据库
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
29 4