数据库回顾(九) 数据库存储引擎概述

103 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第16天,点击查看活动详情

大家好! 我是慕歌,一只想教你学习 后端技术的野生coder! 欢迎来到慕歌的数据库系列教程,希望通过这个教程带大家深入学习数据库技术,该教程所有知识点均来源于本人的日常学习与开发中,如有疑问请与我联系!

前言

在上一节的分享中,慕歌向大家分享关于数据库执行机制的知识,带大家探究数据库底层的结构组成。从结构组成中寻找数据库语句的执行流程,从执行流程中分析可能存在的问题,为语句的执行排查提供新的思路,从底层出发,探究更多的优化细节。底层执行结构主要包括:连接建立区,查询缓存区,服务提供区以及数据执行引擎这几个主要结构。
其中服务层的分析器,优化器,执行器是数据库性能的关键,通过优化这部分的执行,能够极大的提升执行效率。分析器的作用是对语法以及语法树的建立,通过构建语法树,分析语法,解析语法对应含义,对语句做初始化处理,在交给优化器做定向的调优,进一步提升执行的效率。最后执行器在对优化后的方案进行执行的预推演,寻找到一个执行效率相对最优的执行。
以上就是对上一节知识的简单回顾,这一节中需要探究数据引擎的功能,数据引擎在数据库中扮演了不可忽视的作用,值得深入了解其底层逻辑。

数据引擎

功能概述:

存储引擎主要的功能是负责表中数据的提取与写入工作,不同的表在底层具有不同的存储结构与逻辑,具有各自的优势。

引擎简介:

INNODB:
  • MYSQL8.0 以后的默认存储引擎,具有良好的性能,对于关系型数据表
  • 默认支持数据库事务,具有事务提交,回滚功能
  • 具有优异的增删改查性能,比较的平衡
  • 底层存储结构,数据与索引合并存储,通过索引能够快速查找数据
MYISM:
  • MYSQL5.5 之前的默认存储引擎,在某些性能上优与INNODB引擎
  • 不支持事务,锁以及外键等功能
  • 默认维护数据统计列,能够在参数时间统计数据表数据
  • 存储的数据结构中,索引与数据分开存储
  • 对于数据访问具有及高的效率,适合以读为主的场景
ARCHIVE:

专用于数据归档,读少写多的大数据存储场景

MEMORY:

内存数据表,具有及快的数据访问性能

MERGE:

管理多个MYISM 表的集合

引擎使用:

#语法:
#指定存储引擎
CREATE TABLE tab_name(
    建表语句; 
) ENGINE = 存储引擎名称;

#更改存储引擎:
ALTER TABLE 表名 ENGINE = 存储引擎名称;

结语

这一节的分享到这里就结束了,下一节将带来数据库索引的分享学习!
如果您觉得本文不错,欢迎点赞支持,您的关注是我坚持的动力!