• MYSQL逻辑架构与存储引擎


     MYSQL逻辑架构

    1、连接层

    最上层是一些客户端和连接服务,包括本地sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。

    2、服务层

    第二层架构主要是完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析以及优化及部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如过程、函数等。在该层,服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化如确定查询表的顺序,是否利用索引等,最后生成相应的执行操作。

    如果是select语句,服务器还会查询内部的缓存。如果缓存足够大,这样在解决大量读取操作额环境中就能够很好的提升系统的性能。

    3、引擎层

    存储引擎层,存储引擎层真正负责了MySQL中数据的存储和提取,服务器通过API与存储引擎进行通信。不同的存储引擎具有的功能不同,这样我们可以根据自己的实际需要进行选取。

    4、存储层

    数据存储层,主要将数据存储在运行于裸设备的文件系统之上,并完成与存储引擎的交互

    存储引擎简介

    存储引擎室指表的类型以及在计算机上的存储方式

    下面介绍几种MySQL最常见的几种存储引擎

    1、InnoDB(mysql5.5之后的默认存储引擎)

    • 它遵循ACID原则设计,提供了具有提交、回滚和崩溃恢复的事务功能;
    • 具有主外键;
    • 支持行锁,操作时只锁某一行,不对其他行有影响,适合高并发操作;
    • 不仅缓存索引还缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响;

    优势:在于提供了良好的事务处理,崩溃修复能力和并发控制,增删性能好

    劣势:占用空间比较大

    使用场景:银行(对事物的完整性要求很高)、售票(要求实现并发控制)

    2、MyLSAM(mysql5.5之前的默认存储引擎)

    • 基于LSAM存储引擎,并对其进行扩展;
    • 不支持主外键,不支持事务;
    • 只支持表锁,即使操作一条记录也锁住整张表,不适合高并发的操作;
    • 只缓存索引,不缓存真实数据;
    • 基于MyLSAM的存储引擎的表支持三种不同的存储格式:静态型、动态型、压缩型

    优势:占有空间小,处理速度快,查询性能好

    劣势:不支持事务操作,不适合并发操作

    我们常用的两个存储引擎就是InnoDB和MyLSAM,我们可以进行比较:

    MyLSAMInnoDB
    主外键不支持支持
    事务不支持支持
    行标锁只支持表锁支持行锁
    缓存只缓存索引,不缓存真实数据不仅缓存索引还缓存真实数据
    性能查询性能好增删性能好
    表空间
    关注点性能事务

     

    3、MEMORY

    mysql中一类特殊的存储引擎,它使用存储在内存中的内容来创建表,而且数据全放在内存中

    优势:数据存储在内存中有利于快速处理,提高表的效率

    劣势:不安全,把数据存储在内存中,关机或重启数据都会消失,断电即失

    4、Archive

    • 用于数据归档,压缩比非常高;
    • 存储空间大概是InnoDB的10-15分之一;

    用于存储历史数据非常合适,比如记录日志信息

    5、MERGE

    也称MRG.MyLSAM,是一组MyLSAM表的组合,这些MyLSAM表结构必须完全相同.

    SQL执行顺序

    手写

    机读

  • 相关阅读:
    WebGL 纹理——在矩形表面贴上图像
    考研英语不熟悉的词义(List11-List15)
    xctf攻防世界 Web高手进阶区 webshell
    简单聊聊 MyBatis
    免费且离线的同声翻译利器「GitHub 热点速览」
    Linux ❀ ps进程操作与僵尸进程解决方法
    【DL】关于tensor(张量)的介绍和理解
    HDFS系统操作命令大全
    mysql基础整理
    IDEA设置光标所在行背景色
  • 原文地址:https://blog.csdn.net/weixin_72076848/article/details/126604179