美文网首页Java 杂谈MySQL
Mysql分层逻辑架构

Mysql分层逻辑架构

作者: 码蚁Q | 来源:发表于2019-05-20 21:53 被阅读9次

    Mysql是一个开源的关系型数据库产品, 采用处理与存储分离的设计,灵活性高,这些年已成为互联网应用上常用的关系型数据库。互联网系统特点是高并发,大数据量,一般瓶颈最终还是会落到数据库,所以优化mysql是必不可少的。优化前我们要对Mysql服务内部的逻辑结构有一定了解, 有助于我们对优化的深入学习.

    一. Mysql逻辑分层

    首先可以把服务端想象成一个大的容器,里面有四层结构,当一个请求过来后,将会执行这四层,执行一遍后才会返回给我们想要的结果。

    1.连接层

    我们客户端发送一个Select是直接交给连接层来处理,而它的作用就是提供与客户端连接的服务.连接层只是与客户端建立起连接.完成一些类似连接处理,授权认证 及相关的安全方案. 在该层上引入了连接池的概念.

    2.服务层

    提供核心的服务功能,如sql接口,完成缓存的查询,

    sql的分析和优化部分及内置函数的执行.

    服务包括以下内容:

    2.1-Mangement Service**

    备份

    安全

    复制

    集群

    2.2-SQL interface**

    存储过程

    视图

    触发器

    2.3-Parser解析

    查询事务

    对象权限

    2.4-Optimizer优化器

    当我们编写Sql语句执行时,优化器会觉得我写的sql语句性能不够好,这个时候,优化器会自己写一个等价于跟我写的执行后结果一致的sql语句进行代替.

    2.5-Cache Buffers

    缓存

    服务器会查询内部的缓存,如果缓存空间足够大,这样可以解决大量读操作的环境中,能够很好的提升系统性能

    3.引擎层

    存储引擎是真正负责MYSQL中数据的存储和提取,

    服务器通过API与存储引擎进行通信,
    不同的存储引擎提供的功能不同,

    可以根据自己的实际需求来进行选取

    常见的有:lnnoDB、MylSAM、Memory

    lnnoDB 【Mysql默认】:它在设计的时候,它是事物优先.

    原理:因为它是行锁,我每一条数据都要锁,

    锁的太多,性能就降低了,虽然性能降低了,

    但是我适合高并发了,就不容易出错了

    MylSAM:性能优先

    原理:因为它是表锁,

    对于表里面的十条数据来说是不受影响的,

    对十条锁一次就完了,所以性能快

    Memroy:

    memory存储引擎是MySQL中的一类特殊的存储引擎。其使用存储在内存中的内容来创建表,而且所有数据也放在内存中,因此,其基于内存中的特性,这类表的处理速度会非常快,但是,其数据易丢失,生命周期短

    4.存储层

    主要是将数据存储在运行的计算机文件系统之上,

    并完成与存储引擎的交互.

    二. 整体执行流程

    1.首先客户端发出一个Select操作

    2.连接层接收后给服务层

    3.服务层对你的查询进行一个优化

    并把优化结果给引擎层

    4.选择当前数据库的引擎,选完引擎后

    引擎将最终的数据交给了存储层

    5.存储层,用存储层来存数据

    三.下期内容:

    DQL内部执行流程与查询优化器

    Mysql高级性能优化-点击学习

    相关文章

      网友评论

        本文标题:Mysql分层逻辑架构

        本文链接:https://www.haomeiwen.com/subject/pwalzqtx.html