【详解】MySQL体系结构和存储引擎

1. 定义数据库和实例

  • 数据库:保存数据的数据文件
  • 数据库实例:由数据库后台进程线程以及一个共享内存区组成。是真正用来操作数据库文件的
  • 通常一个数据库对应一个实例,但在集群中,多个实例对应一个数据库
  • mysql是单进程多线程的,数据库实例在操作系统上的表现就是一个线程

2. MySQL体系结构

在这里插入图片描述

MySQL由以下几部分组成

  • 连接池组件
  • 管理服务和工具组件
  • SQL接口组件
  • 查询分析器组件
  • 优化器组件
  • 缓冲组件
  • 插件式存储引擎和其他数据库最大的区别
  • 物理文件

:存储引擎是基于表的

3. MySQL表存储引擎

3.1 InnoDB存储引擎

  • 支持事务,主要面向在线事务处理
  • 特点:行锁设计支持外键,并支持类似于Oracle的非锁定读,即默认情况下读取操作不会产生锁
  • 在Windows中是默认引擎
  • 将数据放在一个逻辑的表空间,将每个表单独放在一个独立的ibd文件中
  • 通过使用多版本并发控制来获得高并发性,并且实现了SQL标准的4种隔离级别
  • 提供了插入缓冲二次写自适应哈希索引预读等高性能和高可用功能
  • 数据的存储采用了聚集的方式,每个表的存储都按照主键的顺序存放

3.2 MyISAM存储引擎

  • 不支持事务、行锁和全文索引,对于在线分析处理操作速度快
  • 除了Windows,是MySQL的默认引擎
  • 表由MYD和MYI组成。MYD放数据文件,MYI放索引文件。
  • 默认支持256T单表数据

3.3 NDB

  • 集群存储引擎
  • 特点:将索引数据放在内存中
  • 主键查找的速度极快,是高可用、高性能的集群系统
  • 连接的操作(join)速度很慢

3.4 Memory引擎

  • 将表中数据放在内存中,用来存放临时表
  • 使用的哈希索引
  • 只支持表锁,并发性能差

跟NoSQL差异

  • nosql的数据不需要按照行列的标准要求
  • nosql返回数据直接是json,比较方便

3.5 Archive存储引擎

  • 支持INSERT和SELECT操作
  • 适合存储日志信息,先将数据压缩再存储

3.6 Federated存储引擎

  • 指向远程服务器的表

4. 各种存储引擎之间的比较

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值