MySQL存储引擎

存储引擎

  • 本块主要介绍存储引擎 的基本概念、MySQL支持的存储引擎、存储引擎的选择以及操作默认存储引擎。

什么是存储引擎

  • 数据库存储引擎是数据库底层软件组织,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的储存引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的储存引擎还可以获得特定的功能。现在许多数据库管理系统都支持多种不同的存储引擎。MySQL的核心就是存储引擎。

MySQL支持的存储引擎

  • MySQL支持多种类型的数据库引擎,可以分别根据各个引擎的功能和特性为不同的数据库处理任务提供各自不同的适应性和灵活性。在MySQL中,可以利用SHOW ENGINES语句来显示可用的数据库引擎和默认引擎,如图1所示。
  • MySQl提供了多个不同的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在MySQL中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。
    在这里插入图片描述
    图 1
  • support列的值表示某种引擎是否能使用,YES表示可以使用,NO表示不能使用,DEFAULT表示该引擎为当前默认的存储引擎。

如何选择存储引擎

  • 不同的存储引擎都有各自的特点,以适应不同的需求,如图1所示。为了做出选择,首先要考虑每一个存储引擎提供了哪些不同的功能。
  •                                                表1 存储引擎比较
    
功能MyISAMMEMORYInnoDBArchive
存储限制256TBRAM64TBNone
支持事务NoNoYesNo
支持全文索引YesNoNoNo
支持树索引YesYesYesNo
支持哈希索引NoYesNoNo
支持数据缓存NoN/AYesNo
支持外键NoNoYesNo
  • 如果提供提交、回滚和恢复的事务安全(ACID兼容)能力,并要求实现并发控制,InnoDB是一个很好的选择。如果数据表主要用来插入和查询记录,则MyISAM引擎提供较高的处理效率。如果只是临时存放时能够数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存的MEMORY引擎种,MySQL中使用该引擎作为临时表,存放查询的中间结果。如果只有INSERT和SELECT操作,可以选择Archive引擎,Archive存储引擎支持高并发的插入操作,但本身并不是事务安全的。Archive存储引擎非常适合存储归档数据,如记录日志信息可以使用Archive引擎。
  • 提示:使用哪一种引擎要根据需要灵活选择,一个数据库中多个表可以使用不同的引擎以满足各种性能和实际需求。使用合适的存储引擎将会提高整个数据库的性能。

操作默认存储引擎

  • InnoDB是系统的默认引擎,支持可靠的事务处理。
  • 使用语句“SET defauly_storage_engine=<存储引擎名>”可以修改数据库临时的默认存储引擎。
    在这里插入图片描述
    图 2
    -将数据库临时默认存储引擎修改为MyISAM,输入SQL语句,可以发现MySQL的默认存储引擎已将变为MyISAM。但是当再次重启客户端时,默认的存储引擎仍是InnoDB。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值