关系型数据库mysql的InnoDB

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 【6月更文挑战第17天】

image.png
MySQL 的 InnoDB 存储引擎是 MySQL 数据库管理系统中的一个核心组件,它提供了事务安全(ACID 兼容)的表类型,并支持行级锁定和外键约束。InnoDB 是 MySQL 的默认存储引擎(从 MySQL 5.5 版本开始),并且由于其强大的功能和性能,它被广泛用于各种应用程序中。

以下是 InnoDB 存储引擎的一些主要特点:

  1. 事务安全(ACID 兼容)

    • 原子性(Atomicity):事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
    • 一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态。
    • 隔离性(Isolation):在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。
    • 持久性(Durability):一旦事务完成,无论系统发生什么故障,其结果都是永久性的。
  2. 行级锁定(Row-level Locking):InnoDB 支持行级锁定,这允许对表中的单个记录进行锁定,从而提高了并发性能。与 MyISAM 存储引擎的表级锁定相比,InnoDB 的行级锁定允许更高的并发操作。

  3. 外键约束(Foreign Key Constraints):InnoDB 支持外键约束,这有助于保持数据的引用完整性。通过外键约束,可以确保一个表中的数据与另一个表中的数据相关联,并且满足特定的引用规则。

  4. 崩溃恢复(Crash Recovery):InnoDB 具有一个健壮的崩溃恢复功能,它使用日志文件和双写缓冲区来确保在数据库崩溃后能够恢复数据。

  5. MVCC(多版本并发控制):InnoDB 使用 MVCC 来支持高并发操作。MVCC 允许每个事务看到数据库的一个一致的快照,从而避免了读操作和写操作之间的冲突。

  6. 聚簇索引(Clustered Index):InnoDB 的主键索引是聚簇索引,这意味着表中的数据实际上按主键的顺序存储。这种存储方式可以加速基于主键的查询操作。

  7. 支持全文索引(Full-text Indexes):从 MySQL 5.6.4 版本开始,InnoDB 存储引擎支持全文索引,这使得在大量文本数据中进行全文搜索变得容易。

  8. 支持压缩表(Compressed Tables):InnoDB 支持压缩表,这可以节省磁盘空间并提高 I/O 性能。但是,压缩表可能会增加 CPU 的使用率,因为数据在读取和写入时需要进行压缩和解压缩操作。

  9. 在线DDL(Data Definition Language):从 MySQL 5.6 版本开始,InnoDB 支持在线 DDL 操作,这意味着在执行某些 ALTER TABLE 操作时,可以同时对表进行读和写操作。这大大减少了 ALTER TABLE 操作对应用程序的影响。

  10. 其他功能:InnoDB 还提供了许多其他功能,如复制支持、分区支持、插入缓冲(Insert Buffer)和自适应哈希索引(Adaptive Hash Index)等。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
9天前
|
存储 关系型数据库 MySQL
探索MySQL:关系型数据库的基石
MySQL,作为全球最流行的开源关系型数据库管理系统(RDBMS)之一,广泛应用于各种Web应用、企业级应用和数据仓库中
|
6天前
|
关系型数据库 MySQL 网络安全
Mysql 数据库主从复制
在MySQL主从复制环境中,配置了两台虚拟机:主VM拥有IP1,从VM有IP2。主VM的`my.cnf`设置server-id为1,启用二进制日志;从VM设置server-id为2,开启GTID模式。通过`find`命令查找配置文件,编辑`my.cnf`,在主服务器上创建复制用户,记录二进制日志信息,然后锁定表并备份数据。备份文件通过SCP传输到从服务器,恢复数据并配置复制源,启动复制。检查复制状态确认运行正常。最后解锁表,完成主从同步,新用户在从库中自动更新。
908 6
Mysql 数据库主从复制
|
7天前
|
缓存 运维 关系型数据库
数据库容灾 | MySQL MGR与阿里云PolarDB-X Paxos的深度对比
经过深入的技术剖析与性能对比,PolarDB-X DN凭借其自研的X-Paxos协议和一系列优化设计,在性能、正确性、可用性及资源开销等方面展现出对MySQL MGR的多项优势,但MGR在MySQL生态体系内也占据重要地位,但需要考虑备库宕机抖动、跨机房容灾性能波动、稳定性等各种情况,因此如果想用好MGR,必须配备专业的技术和运维团队的支持。 在面对大规模、高并发、高可用性需求时,PolarDB-X存储引擎以其独特的技术优势和优异的性能表现,相比于MGR在开箱即用的场景下,PolarDB-X基于DN的集中式(标准版)在功能和性能都做到了很好的平衡,成为了极具竞争力的数据库解决方案。
|
6天前
|
关系型数据库 数据库 RDS
利用DTS将自建mysql5.7版本数据库迁移至对应rds报错
利用DTS将自建mysql5.7版本数据库迁移至对应rds报错
29 0
|
10天前
|
XML 关系型数据库 MySQL
支付系统----微信支付19---集成MyBatis-plus,数据库驱动对应的依赖版本设置问题,5没版本没有cj这个依赖,mysql驱动默认的是版本8,这里是一个父类,数据库都有,写个父类,继承就行
支付系统----微信支付19---集成MyBatis-plus,数据库驱动对应的依赖版本设置问题,5没版本没有cj这个依赖,mysql驱动默认的是版本8,这里是一个父类,数据库都有,写个父类,继承就行
|
10天前
|
Java 关系型数据库 MySQL
使用MySQL JDBC连接数据库
使用MySQL JDBC连接数据库
|
10天前
|
关系型数据库 MySQL 数据库
MybatisPlus添加数据数据库没有数据,数据消失,使用Navicate看不到数据,Navicate中Mysql的数据与idea的数据不一定同步,Navicate与idea的数据库同步,其实有分页
MybatisPlus添加数据数据库没有数据,数据消失,使用Navicate看不到数据,Navicate中Mysql的数据与idea的数据不一定同步,Navicate与idea的数据库同步,其实有分页
|
10天前
|
SQL 关系型数据库 MySQL
Navicate,数据库,Mysql,改表,4月29日Finished - Unsuccessfully,导出数据不妨,右键,备份一下Mysql数据库的内容,你想导入和导出数据不如,用查询的方式去做
Navicate,数据库,Mysql,改表,4月29日Finished - Unsuccessfully,导出数据不妨,右键,备份一下Mysql数据库的内容,你想导入和导出数据不如,用查询的方式去做
|
11天前
|
存储 SQL Oracle
|
11天前
|
SQL 存储 关系型数据库
关系型数据库PostgreSQL学习
【7月更文挑战第4天】
412 2