MySQL存储引擎

什么是存储引擎?

数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新、删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧,锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。

现在很多数据库管理系统都支持多种不同的存储引擎。Mysql的核心就是存储机制。

InnoDB 事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键。MySQL5.5.之后,InnoDB作为默认存储引擎。

MyISAM是基于ISM的存储引擎,并对其进行扩展,是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。
MyISAM拥有较高的插入,查询速度,但不支持事务。

MEMORY存储机制将表中的数据存储到内存中,为查询和引用其他数据提供快速访问。

MySQL 5.7支持的存储引擎

Mysql支持多种类型的数据库引擎,可分别根据各个引擎的功能和特性为不同的数据库处理任务提供各自不同的适应性和灵活性。在Mysql中,可以利用SHOW ENGINES 语句来显示可用的数据库引擎和默认引擎。

MySQL提供了多个不同的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在Mysql中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。

MySQL5.7支持的存储引擎有 InnoDB.MyISAM、Memory、Archive、Merge、Archive、Federated、CSV、BLACKHOLE等。
可以使用SHOW ENGINES语句查看系统所支持的引擎类型,结果如图所示。

Support列的值表示某种引擎是否能使用,YES表示能用,NO表示不能使用,DEFAULT表示该引擎为当前默认的存储引擎。

如何选择MySQL存储引擎

不同的存储引擎有都有各自的特点,以适应不同的需求,如表所示。
为了在作出选择,首先要考虑每一个存储引擎提供了哪些不同的功能。

可以根据以下的原则来选择Mysql存储引擎:

  • 如果要提供提交、回滚和恢复的事务安全(ACID兼容)能力,并要求实现并发控制,InnoDB是一个很好的选择。
  • 如果数据表主要用来插入和查询记录,则MyISAM引擎提供较高的处理效率。
  • 如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存的 MEMORY 引擎中,MySQL 中使用该引擎作为临时表,存放查询的中间结果。
  • 如果只有 INSERT 和 SELECT 操作,可以选择Archive 引擎,Archive 存储引擎支持高并发的插入操作,但是本身并不是事务安全的。Archive 存储引擎非常适合存储归档数据,如记录日志信息可以使用 Archive 引擎。

提示:使用哪一种引擎要根据需要灵活选择,一个数据库中多个表可以使用不同的引擎,以满足各种性能和实际需求。使用合适的存储引擎将会提高整个数据库的性能。

MySQL默认存储引擎

InnoDB是系统默认的存储引擎,支持可靠的事务处理。
使用下面的语句可以修改数据库临时的默认存储引擎。

SET default_storage_engine=<存储引擎名>

注意:将MySQL数据库的临时默认存储引擎修改为其他的存储引擎时,但是当再次重启可客户端时,默认存储引擎仍然是InnoDB。

全部评论

相关推荐

10-21 23:48
蚌埠坦克学院
csgq:可能没hc了 昨天一面完秒挂
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务