MySQL基础 - (1)框架

体系结构

  • 数据库:物理操作系统文件或其他形式文件类型的集合,是按照某种数据模型组织起来并存放在存储器中的数据集合。
  • 实例:数据库实例是程序,是位于用户和操作系统之间的一层数据管理软件。

Mysql数据库体系结构图:

image-20200314154500061

由图可见,MySQL由主要由以下几部分组成:

  • 连接池组件:为解决资源的频繁分配﹑释放所造成的问题,为数据库连接建立一个“缓冲池”。
  • 管理服务和工具组件:系统管理和控制工具,例如备份恢复、Mysql复制、集群等;
  • SQL接口组件:用户SQL命令接口,进行DML/DDL、存储过程、视图、触发器等操作和管理;
  • 解析器组件:SQL命令传递到解析器的时候会被解析器解析和验证。
  • 优化器组件:SQL语句在查询之前会使用查询优化器对查询进行优化。
  • 缓冲组件:查询缓存,如果查询缓存中有查询结果,查询语句可以直接去查询缓存中取数据。
  • 插件式存储引擎:存储引擎是MySql中具体的与文件打交道的子系统,Mysql的存储引擎是插件式的。
  • 物理文件

存储引擎

MySQL的存储引擎是插件式的,每个存储引擎都有各自的特点,能根据具体的应用建立不同的存储引擎表。

MySQL主要有9种存储引擎,可以通过show engines;语句查询:

Engine Support Comment Transactions XA Savepoints
MEMORY YES Hash based, stored in memory, useful for temporary tables NO NO NO
MRG_MYISAM YES Collection of identical MyISAM tables NO NO NO
CSV YES CSV storage engine NO NO NO
FEDERATED NO Federated MySQL storage engine
PERFORMANCE_SCHEMA YES Performance Schema NO NO NO
MyISAM YES MyISAM storage engine NO NO NO
InnoDB DEFAULT Supports transactions, row-level locking, and foreign keys YES YES YES
BLACKHOLE YES /dev/null storage engine (anything you write to it disappears) NO NO NO
ARCHIVE YES Archive storage engine NO NO NO

数据库应用主要分两类:OLAP(联机分析处理)和OLTP(联机事务处理)

OLAP (联机分析处理)主要特点:

  • 实时性要求不高
  • 数据量大
  • 并发量小

OLTP(联机事务处理)主要特点:

  • 实时性要求高
  • 数量小
  • 并发高
  • 要求满足ACID

存储引擎简介:

  1. InnoDB

    InnoDB是一个事务型的存储引擎,支持行级锁和外键约束。从MySQL5.5.8版本开始,InnoDB是默认存储引擎。其设计主要面向OLTP的应用。

  2. MyISAM

    MyISAM存储引擎不支持事务、表锁,支持全文索引,主要面向OLAP应用。

    MyISAM存储引擎由MYD和MYI组成,MYD用来存放数据文件,MYI用来存放索引文件。此外,MyISAM引擎的另一个与众不同的地方是它的缓冲池只缓存索引文件。

  3. Memory

    Memory采用的逻辑介质是内存,响应速度应该是很快的,但是当数据库重启或发生崩溃时数据会丢失。只支持表锁,并发性能差。

  4. Archive

    Archive引擎只支持INSERT和SELECT操作,支持行锁,不支持事务。使用zlib算法将数据行进行压缩后存储,压缩比一般可达1:10。Archive存储引擎非常适合存储归档数据。Archive存储引擎使用行锁来实现高并发的插入操作,但是本身不是事务安全的,其设计目的主要是提供快速插入和压缩数据功能。

  5. MRG_MYISAM

    Mrg_MyISAM存储引擎,是一组MyIsam的组合,也就是说,他将MyIsam引擎的多个表聚合起来,但是他的内部没有数据,真正的数据依然是MyIsam引擎的表中,但是可以直接进行查询、删除更新等操作。

  6. CSV

    可以将scv文件作为MySql的表来使用,但是不支持索引。CSV引擎表所有的字段都必须为非空的,创建的表有两个一个是CSV文件和CSM文件。

  7. FEDERATED

    Federated存储引擎是访问MySQL服务器的一个代理。

  8. PERFORMANCE_SCHEMA

    MySQL5.5以后新增了一个存储引擎,就是Performance_Schema,他主要是用来收集数据库服务器的性能参数。MySQL用户不能创建存储该类型的表。

    他提供了以下的功能:

    • 提供进程等待的详细信息,包括锁、互斥变量、文件信息。
    • 保存历史的事件汇总信息,为Mysql服务器的性能做出详细的判断。
    • 对于新增和删除监控时间点都非常容易,并可以随意的改变Mysql服务器的监控周期

    需要在配置文件my.cnf中进行配置才能开启。

  9. BLACKHOLE

    “黑洞”存储引擎,他会丢弃所有的插入的数据,服务器会记录下Blackhole表的日志,所以可以用于复制数据到备份数据库。

文件

资料摘抄

https://blog.csdn.net/wangyang1354/article/details/50740041

《MySQL技术内幕》

posted @ 2020-11-13 20:55  zhaooo  阅读(153)  评论(0编辑  收藏  举报