什么是InnoDB存储引擎

30次阅读
没有评论

共计 2445 个字符,预计需要花费 7 分钟才能阅读完成。

这篇文章主要介绍“什么是 InnoDB 存储引擎”,在日常操作中,相信很多人在什么是 InnoDB 存储引擎问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是 InnoDB 存储引擎”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

1. InnoDB 简介

MySQL 5.5 版本以后,默认存储引擎就是
InnoDB 了。InnoDB 是一种兼顾了高可靠性和高性能的通用存储引擎。在 MySQL 5.7 中,除非你配置了其他默认存储引擎,否则执行 CREATE TABLE 不指定 ENGINE 的语句将创建一个 InnoDB 表。

#  查看 MySQL 支持的存储引擎
mysql  show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
#  查看默认存储引擎
mysql  show variables like  default_storage_engine 
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+

2. InnoDB 优势

InnoDB 之所以如此受宠,主要在于其功能方面的较多优势。

1)支持事务

InnoDB 最重要的一点就是支持事务,可以说这是 InnoDB 成为 MySQL 中最流行的存储引擎的一个非常重要的原因。此外 InnoDB 还实现了 4 种隔离级别(READ UNCOMMITTED,READ COMMITTED,REPEATABLE READ 和 SERIALIZABLE),使得对事务的支持更加灵活。

2)灾难恢复性好

InnoDB 通过 commit、rollback、crash-recovery 来保障数据的安全。

具体来说,crash-recovery 就是指如果服务器因为硬件或软件的问题而崩溃,不管当时数据是怎样的状态,在重启 MySQL 后,InnoDB 都会自动恢复到发生崩溃之前的状态。

3)使用行级锁

InnoDB 改变了 MyISAM 的锁机制,实现了行锁。虽然 InnoDB 的行锁机制是通过索引来完成的,但毕竟在数据库中大部分的 SQL 语句都要使用索引来检索数据。行锁定机制也为 InnoDB 在承受高并发压力的环境下增强了不小的竞争力。

4)实现了缓冲处理

InnoDB 提供了专门的缓冲池,实现了缓冲管理,不仅能缓冲索引也能缓冲数据,常用的数据可以直接从内存中处理,比从磁盘获取数据处理速度要快。在专用数据库服务器上,通常会将最多 80%的物理 memory 分配给缓冲池。

5)支持外键

InnoDB 支持外键约束,检查外键、插入、更新和删除,以确保数据的完整性。存储表中的数据时,每张表的存储都按主键顺序存放,如果没有显式在表定义时指定主键,InnoDB 会为每一行生成一个 6 字节的 ROWID,并以此作为主键。

到此,关于“什么是 InnoDB 存储引擎”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-27发表,共计2445字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)