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


    1.数据库和实例

    数据库(database)和实例(instance)不能混淆。

    什么是数据库

    数据库是物理操作系统文件或其他文件类型的集合。说白了,就是存储着的文件,不会运行起来,只能被实例增删改查,用户不能脱离实例,直接操作。

    什么是实例

    实例是MySQL数据库由后台线程以及一个共享内存区组成。说白了,就是一个正在运行的进程,是用户和操作系统的一层数据管理软件,用户需要通过实例来操数据库。

    二者关系

    二者是一一对应的,但是在集群的情况下,可以多对多。

    用户需要通过实例操作数据库。就像我们不能直接打开视频文件,需要一个视频解码播放软件来打开视频文件,才能直接讲视频播放出来。

    2.MySQL体系结构

    在这里插入图片描述
    从图中可以看出,MySQL由以下几个部分构成:

    • 连接池组件
    • 管理服务和工具组件
    • SQL接口组件
    • 查询解析器组件
    • 优化器组件
    • 缓冲器组件
    • 插件式存储引擎
    • 物理文件

    3.MySQL存储引擎

    MySQL插件式存储引擎架构提供了标准的管理和服务支持,这些标准与存储引擎本身无关,而存储引擎是底层物理结构的实现。

    需要注意的是,存储引擎是基于表的,而不是数据库。

    使用存储引擎的好处

    • 每个存储引擎都有自己的特点,能够根据具体的应用建立不同存储引擎表。
    • 程序员可以自己根据业务特点对存储引擎进行改进。

    存储引擎分类

    • InnoDB
      支持事务,设计的目标主要是面向在线事务处理的应用。其特点是行锁设计、支持外键,还有读操作不加锁/。从MySQL5.5.8开始,InnoDB是默认存储引擎。最常用。
    • MyISAM
      不支持事务、支持表锁,支持全文索引,主要面向一些OLAP(联机分析处理)数据库应用,也就是没有事务,主要是依赖系统磁盘吞吐量。只缓存索引文件,不缓冲数据文件。
    • NDB
      一种集群存储引擎,提供高可用性。全部数据放在内存中,因此主键查找速度极快。连接操作放在了数据库层实现,而不是存储引擎,所以,连接操作需要巨大的网络开销。
    • Memory
      顾名思义,将表的数据放在了内存中,如果断电了,数据都没了,所以,适合临时存储的数据。默认使用哈希索引。只支持表锁,并发性能差。
    • Maria
      用来取代MyISAM的,支持缓存数据和索引文件,添加了行锁设计,支持事务和非事务的选项,更高的字符型的处理性能。

    在这里插入图片描述

    连接MySQL的方式

    1. TCP/IP连接
      任何平台下都能提供,网络中使用最多,就是通过传输层建立的持续性连接。
    2. 命名管道
      windows平台专有的连接服务。
    3. 共享内存
    4. UNIX套接字
      不是网络协议,只能在一台服务器上实现。
  • 相关阅读:
    其实很简单——SpringIOC详解
    设计模式之原型模式与深拷贝、浅拷贝
    《Understanding the JVM》读书笔记之五——类加载器
    《Understanding the JVM》读书笔记之四——类加载机制
    《Understanding the JVM》读书笔记之三——垃圾收集器
    《Understanding the JVM》读书笔记之二——垃圾回收算法
    《Understanding the JVM》读书笔记之一——JVM内存模型
    开始实现功能(一)——用户模块,从注册登录开始
    网站后台搭建--springboot项目是如何创建的
    从网站功能入手创建数据库
  • 原文地址:https://www.cnblogs.com/lippon/p/14117629.html
Copyright © 2020-2023  润新知