简述MySQL InnoDB存储引擎
前言:
存储引擎是数据库的核心,对于MySQL来说,存储引擎是以插件的形式运行的。虽然MySQL支持种类繁多的存储引擎,但最常用的当属InnoDB了,本篇文章将主要介绍InnoDB存储引擎相关知识。
1.InnoDB简介
MySQL5.5版本以后,默认存储引擎就是InnoDB了。InnoDB是一种兼顾了高可靠性和高性能的通用存储引擎。在MySQL5.7中,除非你配置了其他默认存储引擎,否则执行CREATETABLE不指定ENGINE的语句将创建一个InnoDB表。
#查看MySQL支持的存储引擎 mysql>showengines; +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ |Engine|Support|Comment|Transactions|XA|Savepoints| +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ |InnoDB|DEFAULT|Supportstransactions,row-levellocking,andforeignkeys|YES|YES|YES| |MRG_MYISAM|YES|CollectionofidenticalMyISAMtables|NO|NO|NO| |MEMORY|YES|Hashbased,storedinmemory,usefulfortemporarytables|NO|NO|NO| |BLACKHOLE|YES|/dev/nullstorageengine(anythingyouwritetoitdisappears)|NO|NO|NO| |MyISAM|YES|MyISAMstorageengine|NO|NO|NO| |CSV|YES|CSVstorageengine|NO|NO|NO| |ARCHIVE|YES|Archivestorageengine|NO|NO|NO| |PERFORMANCE_SCHEMA|YES|PerformanceSchema|NO|NO|NO| |FEDERATED|NO|FederatedMySQLstorageengine|NULL|NULL|NULL| +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ #查看默认存储引擎 mysql>showvariableslike'default_storage_engine'; +------------------------+--------+ |Variable_name|Value| +------------------------+--------+ |default_storage_engine|InnoDB| +------------------------+--------+
2.InnoDB优势
InnoDB之所以如此受宠,主要在于其功能方面的较多优势。
1)支持事务
InnoDB最重要的一点就是支持事务,可以说这是InnoDB成为MySQL中最流行的存储引擎的一个非常重要的原因。此外InnoDB还实现了4种隔离级别(READUNCOMMITTED,READCOMMITTED,REPEATABLEREAD和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存储引擎及其优势,想深入学习MySQL,InnoDB绝对是一块绕不开的重点知识。关于InnoDB的内容还有很多,后面有机会的话可以多写写。
以上就是简述MySQLInnoDB存储引擎的详细内容,更多关于MySQLInnoDB存储引擎的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。