zoukankan      html  css  js  c++  java
  • MySQL基础

    体系结构

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

    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技术内幕》

  • 相关阅读:
    Java 核心编程——文件随机读写类(RandomAccessFile)
    java 核心编程——文件过滤类(FileFilter和FilenameFilter)
    java 核心编程 ——文件操作类File
    java 编程思想笔记(七)——异常
    java 编程思想笔记(六)——内部类
    enote笔记法使用范例(2)——指针(1)智能指针
    enote笔记法使用范例(1)——自己总结的一些编写代码的常识 (a)
    enote笔记语言(2)
    enote笔记语言(1)
    monkey命令——压力测试——转载参考07
  • 原文地址:https://www.cnblogs.com/zhaooo/p/13971314.html
Copyright © 2011-2022 走看看