MySQL之SQL优化篇(三):浅谈MySQL存储引擎

MySQL之SQL优化篇(三):浅谈MySQL存储引擎

  简单谈及在SQL优化过程中涉及存储引擎的内容。

上一节:MySQL之SQL优化篇(二):SQL性能分析与诊断

前言

  关于存储引擎有太多的细节需要关注,本文只是简单记录自己的理解(混个眼熟),随着学习的深入,将会不断更新。

MyISAM

  在MySQL 5.1及之前的版本,MyISAM是默认的存储引擎,系统表使用的存储引擎就是MyISAM。对于MyISAM,对其印象最深刻的就是全文索引、不支持事务和行级锁、索引和数据的存放形式、崩溃后无法安全恢复等。

InnoDB

  对于InnoDB,映像最深刻的就是支持事务(默认REPEATABLE READ)和行级锁、数据恢复比MyISAM更加稳定、数据存放在表空间中、聚簇索引、覆盖查询、5.6之后开始支持全文索引,5.7通过插件能支持中文全文索引。在大多数情况下,使用MySQL官方指定的默认存储引擎InnoDB是最安全、最稳妥的做法。在MySQL 8.0及以上,系统数据库默认的存储引擎为InnoDB:
在这里插入图片描述
在这里插入图片描述

Blackhole

  Blackhole引擎没有实现任何的存储机制,它会丢弃所有插入的数据,不做任何保存,但是,它会记录二进制日志。熟悉MySQL复制的小伙伴应该都知道,MySQL备库是通过获取主库的二进制日志来实现数据的复制。备库数量少的时候影响可能不大,然而,当备库过多,主库在业务压力之下还要承担来自备库的复制请求,这时候就显得不堪重负了。此时可以使用一个采用Blackhole存储引擎的备库来承担主库的复制压力,由于Blackhole不写数据只保留日志的特性,使得它的开销会比其他引擎低,专心做日志复制的工作。

CSV

  CSV引擎就如同其名字一样,是关于.csv格式文件的存储引擎。它可以把csv文件作为MySQL的表进行处理,是一种非常有用的数据交换机制。

Memory

  Memory引擎表所有数据都存储在内存中,不需要磁盘IO,速度是非常快的(比MyISAM快)。如果在查询过程中需要使用临时表保存中间结果,临时表很有可能是Memory表,如果数据太大超过内存限制或者是含有BLOB、TEXT等字段,则会使用MyISAM表。因此,尽量不要使用BLOB和TEXT等“大类型”。

更多存储引擎信息

  参考官方文档链接

下一节:MySQL之SQL优化篇(四):schema及数据类型优化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值