Innodb学习之MySQL体系结构
数据库和数据库实例
数据库是所有文件的集合,是依照某种数据模型组织起来的数据集合。
而数据库实例,指的是程序,是位于用户与操作系统之间的一层数据管理软件,用户通过数据库实例对数据库进行操作。
数据库不是文件系统,它区别于文件系统的不同之处在于,数据库需要支持锁、支持事务等。
MySQL体系结构
在MySQL 5.1中,MySQL AB引入了新的插件式存储引擎体系结构,允许将存储引擎加载到正在运新的MySQL服务器中。

MySQL由图中描述的这几个部分组成:
连接池组件,实际编码中应该接触很多
管理服务和工具组件
SQL接口组件
查询分析器组件
优化器组件
缓冲组件
插件式存储引擎<存储引擎是基于表的、使用较为广泛的是Innodb存储引擎>
物理文件
插件式存储引擎式架构是MySQL区别于其它数据库的地方,该架构中,存储引擎的底层物理结构可以按照引擎开发者的意愿来实现。
MySQL各存储引擎特性
Innodb存储引擎
它是我们这个系列的主角,也是日常开发中,使用最多的存储引擎;它主要的设计目标是为了支持那些面向在线事务处理(OLTP)的应用,主要的特点是行锁设计,支持外键。
Innodb存储引擎将数据存放于逻辑表空间中,这个表空间由Innodb存储引擎自身进行管理,对上层用户透明,它还支持将每个表单独存放到独立的 .idb 文件中。
Innodb支持行多版本技术,以提高并发,后续章节将细说。除此之外Innodb还提供了插入缓冲(insert buffer)、二次写、自适应哈索引、预读等提高性能和可用性的功能。
对于表中数据行的存储,MySQL使用聚集索引,就是说每行数据根据主键按序存储;值得一提的是,MySQL的辅助索引虽然也是按辅助索引的键值排序存放,但是辅助索引不存储完整的数据行,只是存储了到主键的映射,使用辅助索引不可避免的最后会进行一次离散读,获取到实际的行数据。
MyISAM
它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。支持全文索引,对基于MyISAM引擎的表,MySQL只缓存.MYI索引文件, 而.MYD数据文件由操作系统本身来维护;需要注意的是区别于别的存储引擎,"它不支持事务",不支持行锁设计,主要面向[OLAP] 数据库应用。
OLAP(Online analytical processing),即联机分析处理,主要用于支持企业决策管理分析。
BDB:
可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性。
Memory
将所有数据保存在RAM中,它使用哈希索引,可以提供常熟时间的访问,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。存在的风险是,如果服务器宕机,将导致内存中的数据丢失。此外还存在使用上的限制,它只支持表锁性能较差,不支持BLOB、TEXT类型字段。
Archive
为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案。Archive只支持insert 和select ,它使用zlib算法将数据行压缩,它非常适合存储归档数据、日志信息;它使用行锁来实现高并发的插入操作,但是它本事不是事务安全的存储引擎。他的设计目标主要是为了,提供高速的插入和压缩功能。
Federated
Federated不存放数据,它只是指向一台远程MySQL数据库服务器上的表类似Oracle的透明网关。它能够将多个分离的MySQL服务器链接起来,从多个物理服务器创建一个逻辑数据库。十分适合于分布式环境或数据集市环境。
时至今日MySQL已经有了很多的存储引擎,官方引擎以及强大的第三方引擎,我们可以根据具体的应用场景选择适当的存储引擎。
Innodb学习之MySQL体系结构的更多相关文章
- MySQL学习笔记-MySQL体系结构总览
MySQL体系结构总览 不管是用哪种数据库,了解数据库的体系结构都是极为重要的.MySQL体系结构主要由数据库和数据库实例构成. 数据库:物理操作系统文件或者其它文件的集合,在mysql中,数据库文件 ...
- MySQL 体系结构以及各种文件类型学习汇总 (转)
1,mysql体系结构 由数据库和数据库实例组成,是单进场多线程架构. 数据库:物理操作系统文件或者其它文件的集合,在mysql中,数据库文件可以是frm.myd.myi.ibd等结尾的文件,当使用n ...
- (1.3)学习笔记之mysql体系结构(C/S整体架构、内存结构、物理存储结构、逻辑结构)
目录 1.学习笔记之mysql体系结构(C/S架构) 2.mysql整体架构 3.存储引擎 4.sql语句处理--SQL层(内存层) 5.服务器内存结构 6.mysql如何使用磁盘空间 7.mysql ...
- (1.1)学习笔记之mysql体系结构(内存、进程、线程)
关键词:mysql体系结构 参考:https://www.cnblogs.com/zhoubaojian/articles/7866292.html 一.mysql体系架构概述 1.mysql体系结构 ...
- MySQL体系结构以及各种文件类型学习
1,mysql体系结构 由数据库和数据库实例组成,是单进场多线程架构. 数据库:物理操作系统文件或者其它文件的集合,在mysql中,数据库文件可以是frm.myd.myi.ibd等结尾的文件,当使用n ...
- MySQl学习-——Mysql体系结构与Mysql存储引擎
Mysql体系结构与Mysql存储引擎 Mysql体系结构 mysql体系结构图:
- MySQL技术内幕InnoDB存储引擎(一)——MySQL体系结构和存储引擎
1.数据库和实例 数据库(database)和实例(instance)不能混淆. 什么是数据库 数据库是物理操作系统文件或其他文件类型的集合.说白了,就是存储着的文件,不会运行起来,只能被实例增删改查 ...
- 第四课(1)——MySQL体系结构
学习目标 一.MySQL体系结构 二.MySQL内存结构 三.MySQL文件结构 四.Innodb体系结构 MySQL体系结构 一.MySQL体系结构图 1.Mysql是由SQL接口,解析器,优化器, ...
- MySQL体系结构与存储引擎
MySQL 体系结构 先看 MySQL 数据库的体系结构,如下图所示. MySQL 体系结构由 Client Connectors 层.MySQL Server 层及存储引擎层组成. Client C ...
- 前端学习数据库MYSQL
这篇文章主要写了 1.数据库MYSQL 2.基本上会遇到的所有SQL语句 数据库可视化软件------Navicat 数据库里边存放的是表,表与表之间是有关联的,而且可以对表进行相关操作(增,删,改, ...
随机推荐
- [转帖]资料整理——Oracle版本历史(很全面)(Releases and versions of Oracle Database)
资料来源: https://en.wikipedia.org/wiki/Oracle_Database Oracle Database Version Initial Release Version ...
- [转帖]第24/24周 数据库维护(Database Maintenance)
https://www.cnblogs.com/woodytu/p/4795542.html 哇哦,光阴似箭!欢迎回到性能调优培训的最后一期.今天我会详细讲下SQL Server里的数据库维护,尤其是 ...
- [转帖]命令行非明文密码连接 TiDB
https://tidb.net/blog/6794a34b#%E6%96%B9%E5%BC%8F%E4%B8%80%EF%BC%9A%E5%91%BD%E4%BB%A4%E8%A1%8C%E8%BE ...
- [转帖]jcmd命令详解
1 基本知识 jcmd 是在 JDK1.7 以后,新增了一个命令行工具. jcmd 是一个多功能的工具,相比 jstat 功能更为全面的工具,可用于获取目标 Java 进程的性能统计.JFR.内存使用 ...
- [转帖]linux性能优化-CPU利用率
参数说明 /proc/stat提供系统的CPU和任务统计信息. user(us): 用户态CPU时间,不包括下面的nice时间,但包括了guest时间. nice(ni): 代表低优先级用户态CPU时 ...
- [转帖]TCP之Nagle、Cork、Delay ACK(延迟确认)
https://www.jianshu.com/p/167ba81206fb 参考资料 TCP协议中的Nagle算法 TCP中的Nagle算法 Linux下TCP延迟确认(Delayed Ack)机制 ...
- docker 镜像导出和导入(适用于内网无法拉镜像的问题)
1.在外网将镜像从指定的仓库拉下来 docker pull consul 现在已将consul镜像拉到了可连外网的服务器 2.将镜像把包到指定的tar文件中 docker save consul:l ...
- 手撕Vue-监听数据变化
经过上一篇的介绍,已经实现了将模板编译成具体数据,接下来要介绍的是如何监听数据的变化,本章主要完成这个需求即可. 在我们文章的开始,我写了一个 Vue 双向数据绑定原理的文章当中封装了一个 Obser ...
- 深度学习应用篇-计算机视觉-语义分割综述[6]:DeepLab系列简介、DeepLabV3深入解读创新点、训练策略、主要贡献
深度学习应用篇-计算机视觉-语义分割综述[6]:DeepLab系列简介.DeepLabV3深入解读创新点.训练策略.主要贡献 0.DeepLabV3深入解读 1.DeepLab系列简介 1.1.Dee ...
- Python 使用Scapy构造特殊数据包
Scapy是一款Python库,可用于构建.发送.接收和解析网络数据包.除了实现端口扫描外,它还可以用于实现各种网络安全工具,例如SynFlood攻击,Sockstress攻击,DNS查询攻击,ARP ...