• mysql架构和历史


    1.mysql的逻辑结构

      a.第一层,基于网络的客户端/服务器的工具或者服务都有类似的结构,比如连接处理,授权认证,安全等

       b。第二层:包括查询解析,分析,优化,缓存以及所有内置函数,存储过程,触发器,视图等

      c。存储引擎,负责mysql中数据的存储和提取,

    1.1 连接管理与安全性

      每个连接拥有一个线程,服务器会负责缓存线程,因此不需要为每一个新建的连接创建或者销毁线程。

      当连接时,会进行认证,基于用户名,原始主机信息和密码,一旦连接成功,会继续认证该客户端是否具有执行某个特定查询的权限

    1.2 优化和执行

      mysql会解析查询,并创建内部数据结构,然后对其进行优化,包括重写查询,决定表的读取顺序,以及选择合适的索引等。

    2.并发控制

      在两个层面的并发控制 : 服务器层和存储引擎层

      

      2.1 读写锁

        共享锁和排他锁 ,也叫 读锁 和 写锁 ,

      2.2 锁粒度

        锁策略就是锁的开销和数据的安全性之间寻求平衡,

        表锁:会锁定整张表,

        行级锁:最大程度支持并发,

    3.事务

       一组原子性的sql查询,

       隔离级别: 未提交读,提交读,可重复读,可串行化

       事务日志:帮助提高事务的效率,使用事务日志,存储引擎在修改表的数据时只需要修改其内存拷贝,

       mysql中的事务: InnoDb,NDB cluster 

    4。多版本并发控制

      

    5.mysql的存储引擎

      Innodb引擎

        数据存储在表空间中,采用mvcc来支持高并发,实现了四个标准的隔离级别,默认级别是可重复读,

  • 相关阅读:
    从零开始学架构(三)UML建模
    【网址收藏】博客园主题美化
    完美解决国内访问GitHub速度太慢的难题
    SpringBoot+slf4j线程池全链路调用日志跟踪 二
    SpringBoot+slf4j实现全链路调用日志跟踪 一
    2021年java最全面试宝典【核心知识整理】
    [中级]系统集成项目管理工程师历年真题及参考答案
    线程池ThreadPoolExecutor最全实战案例
    大厂git分支管理规范:gitflow规范指南
    IdentityServer4
  • 原文地址:https://www.cnblogs.com/suixin84/p/6518840.html
Copyright © 2020-2023  润新知