数据库和数据库实例

  • 数据库是所有文件的集合,是依照某种数据模型组织起来的数据集合。

  • 而数据库实例,指的是程序,是位于用户与操作系统之间的一层数据管理软件,用户通过数据库实例对数据库进行操作。

数据库不是文件系统,它区别于文件系统的不同之处在于,数据库需要支持锁、支持事务等。

MySQL体系结构

在MySQL 5.1中,MySQL AB引入了新的插件式存储引擎体系结构,允许将存储引擎加载到正在运新的MySQL服务器中。



MySQL由图中描述的这几个部分组成:

  • 连接池组件,实际编码中应该接触很多

  • 管理服务和工具组件

  • SQL接口组件

  • 查询分析器组件

  • 优化器组件

  • 缓冲组件

  • 插件式存储引擎<存储引擎是基于表的、使用较为广泛的是Innodb存储引擎>

  • 物理文件

插件式存储引擎式架构是MySQL区别于其它数据库的地方,该架构中,存储引擎的底层物理结构可以按照引擎开发者的意愿来实现。

MySQL各存储引擎特性

Innodb存储引擎

  1. 它是我们这个系列的主角,也是日常开发中,使用最多的存储引擎;它主要的设计目标是为了支持那些面向在线事务处理(OLTP)的应用,主要的特点是行锁设计,支持外键。

  2. Innodb存储引擎将数据存放于逻辑表空间中,这个表空间由Innodb存储引擎自身进行管理,对上层用户透明,它还支持将每个表单独存放到独立的 .idb 文件中。

  3. Innodb支持行多版本技术,以提高并发,后续章节将细说。除此之外Innodb还提供了插入缓冲(insert buffer)、二次写、自适应哈索引、预读等提高性能和可用性的功能。

  4. 对于表中数据行的存储,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体系结构的更多相关文章

  1. MySQL学习笔记-MySQL体系结构总览

    MySQL体系结构总览 不管是用哪种数据库,了解数据库的体系结构都是极为重要的.MySQL体系结构主要由数据库和数据库实例构成. 数据库:物理操作系统文件或者其它文件的集合,在mysql中,数据库文件 ...

  2. MySQL 体系结构以及各种文件类型学习汇总 (转)

    1,mysql体系结构 由数据库和数据库实例组成,是单进场多线程架构. 数据库:物理操作系统文件或者其它文件的集合,在mysql中,数据库文件可以是frm.myd.myi.ibd等结尾的文件,当使用n ...

  3. (1.3)学习笔记之mysql体系结构(C/S整体架构、内存结构、物理存储结构、逻辑结构)

    目录 1.学习笔记之mysql体系结构(C/S架构) 2.mysql整体架构 3.存储引擎 4.sql语句处理--SQL层(内存层) 5.服务器内存结构 6.mysql如何使用磁盘空间 7.mysql ...

  4. (1.1)学习笔记之mysql体系结构(内存、进程、线程)

    关键词:mysql体系结构 参考:https://www.cnblogs.com/zhoubaojian/articles/7866292.html 一.mysql体系架构概述 1.mysql体系结构 ...

  5. MySQL体系结构以及各种文件类型学习

    1,mysql体系结构 由数据库和数据库实例组成,是单进场多线程架构. 数据库:物理操作系统文件或者其它文件的集合,在mysql中,数据库文件可以是frm.myd.myi.ibd等结尾的文件,当使用n ...

  6. MySQl学习-——Mysql体系结构与Mysql存储引擎

    Mysql体系结构与Mysql存储引擎 Mysql体系结构 mysql体系结构图:

  7. MySQL技术内幕InnoDB存储引擎(一)——MySQL体系结构和存储引擎

    1.数据库和实例 数据库(database)和实例(instance)不能混淆. 什么是数据库 数据库是物理操作系统文件或其他文件类型的集合.说白了,就是存储着的文件,不会运行起来,只能被实例增删改查 ...

  8. 第四课(1)——MySQL体系结构

    学习目标 一.MySQL体系结构 二.MySQL内存结构 三.MySQL文件结构 四.Innodb体系结构 MySQL体系结构 一.MySQL体系结构图 1.Mysql是由SQL接口,解析器,优化器, ...

  9. MySQL体系结构与存储引擎

    MySQL 体系结构 先看 MySQL 数据库的体系结构,如下图所示. MySQL 体系结构由 Client Connectors 层.MySQL Server 层及存储引擎层组成. Client C ...

  10. 前端学习数据库MYSQL

    这篇文章主要写了 1.数据库MYSQL 2.基本上会遇到的所有SQL语句 数据库可视化软件------Navicat 数据库里边存放的是表,表与表之间是有关联的,而且可以对表进行相关操作(增,删,改, ...

随机推荐

  1. TiKV占用内存超过的解决过程

    TiKV占用内存超过的解决过程 背景 为了后去TiDB的极限数据. 晚上在每台服务器上面增加了多个TiKV的节点. 主要方式为: 每个NVME的硬盘增加两个TiKV的进程. 这样每个服务器两个磁盘, ...

  2. [转帖]PostgreSQL 的性能调优方法

    https://juejin.cn/post/7119489847529570334 浅谈PostgreSQL的性能调校 PostgreSQL的性能调校是指调校数据库以提高性能和快速访问数据:我们可以 ...

  3. [转帖]Alertmanager 部署配置

    https://www.cnblogs.com/winstom/p/11940570.html 目录 前言 源码安装 配置 启动 配置prometheus监控Alertmanager 修改promet ...

  4. [转帖]Xargs用法详解

    https://www.cnblogs.com/cheyunhua/p/8796433.html 1. 简介 之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要, ...

  5. [转帖]MIPS和ARM授权差异引起的龙芯路线变迁

    https://zhuanlan.zhihu.com/p/99807721 一.MIPS和ARM授权的异同 MIPS授权和ARM授权都分为处理器核授权(Core License)和架构授权(Archi ...

  6. [转帖]龙芯总强调同频性能,是因奔腾4要到25+GHz才比得上酷睿11代单核

      https://baijiahao.baidu.com/s?id=1734320620568707041 闲话不说,先上图,是SPEC CPU 2006 int(单任务)测试的成绩: 上图中的成绩 ...

  7. [转帖]oracle如何删除datafile,误删除Oracle datafile 无法打开数据库

    1.在Oracle open方式下,直接从OS上删除了datafile文件. rm /u02/rmants.dbf 2.数据库关闭后,无法打开数据库,只能到mount状态. SQL> alter ...

  8. Linux下面rsync 实现 完全一致的同步方法

    1. 在某些特殊的linux机器上面, 比如龙芯后者是飞腾服务器,部分工具不太好用, 需要使用x86弄好之后进行同步过去, 这个时候scp 最简单但是网络流量非常大, 不如使用rsync, rsync ...

  9. frp 的简单使用

    在出差现场. 开着VPN 就没法用出差现场的网络, 想了想 好像 只能用 frp 来搞一下比较好 借了下同事的vps 进行相应的处理 进行简单的内容穿透工作. 1. 下载相关的文件. wget htt ...

  10. StorageClass 简单学习

    StorageClass 简单学习 学习资料来源 https://www.jianshu.com/p/5e565a8049fc https://zhuanlan.zhihu.com/p/2895019 ...