zoukankan      html  css  js  c++  java
  • MySQL简介

    如果能在头脑中构建衣服MySQL各组件之间如何协同工作的架构图,就会有助于深入了解MySQL服务器。如图:

    该架构分为三层:

      最上层的服务并不是MySQL所独有的,大多数基于网络的客户/服务器的工具或者服务都有类似的架构。

      第二层架构是MySQL比较有意思的部分。大多数MySQL的核心服务功能都在这一层,包括查询解析,分析,优化

      缓存,以及所有的内置函数,所有的跨存储引擎的功能都在这一层实现: 存储过程,触发器,视图等。

      第三层包含了存储引擎。存储引擎负责MySQL中数据的存储和提取。每个存储引擎都有它的优势和劣势。服务器通过

      API与存储引擎进行通信。这些接口屏蔽了不同存储引擎之间的差异,使得这些差异对上层的查询过程透明。

      存储引擎API包含几十个底层函数,用于执行诸如"开始一个事务" 或者 "根据主键提取一行记录"等操作。

      但存储引擎不会去解析SQL,不同存储引擎之间也不会相互通信,而只是简单的响应上层服务器的请求。

    然后让我们再来认识认识一些MySQL的基本概念。

    1. 连接管理与安全性

      每个客户端连接都会服务器进程中拥有一个线程,这个连接的查询只会在这个单独的线程中执行,该线程只能轮流在某个CPU核心或者CPU中运行。

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

      客户端连接MySQL服务器是需要进行验证的。

    2.优化和执行

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

      用户还可以通过特殊的关键字提示(hint)优化器来影响它的决策过程。(后续都会有详细介绍)

      优化器并不关心表使用的是什么存储引擎,但存储引擎对优化查询是有影响的。

    3.并发控制

      MySQL在多个查询需要在同一时刻修改数据,都会产生并发控制的问题。

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

    4.读写锁

      并发控制的一种很简单的解决方案,就是读写锁。在处理并发读或者写时,可以通过实现一个由两种类型的锁组成的锁系统来解决问题。

      这两种类型的锁通常被称为共享锁和排他锁,也叫读锁和写锁。

      锁的具体概念如下:读锁是共享的,或者说是互相不阻塞的。写锁则是排他的,也就是说一个写锁会阻塞其他的写锁和读锁。

    5.锁粒度

      表锁

      行级锁 (innoDB和XtraDB以及其他一些存储引擎中实现了行级锁,行级锁只在存储引擎层实现,MySQL服务器层没有实现)

    6.事务

      ACID:

      原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability)

    7.隔离级别

      READ UNCOMMITED(未提交读)

      READ COMMITTE(提交读)

      REPEATABLE READ(可重复读)

      SERIALIZABLE(可串行化)

    8.死锁

    9.事务日志

      它可以帮助提高事务的效率。它减少随机磁盘I/O。

      目前大多数存储引擎都是这样实现的,我们通常称之为预写式日志(write-Ahead Logging),修改数据需要写两次磁盘。

      (在事务提交后,如果直接写入数据,就会产生大量的随机磁盘I/O.

      如果使用事务日志,首先将日志写入磁盘,是顺序磁盘I/O,开销会比较小,其次在真正需要写入数据的时候,存储引擎会做相关的顺序优化,尽量减少

      I/O的产生,然后再慢慢地刷回到磁盘。)

    10. 存储引擎

      InnoDB引擎

      MyISAM引擎

      

      

      

  • 相关阅读:
    关于echarts
    es6数组相关操作
    日期格式化(超实用)
    vue对象深拷贝(避免对象赋值,改变一个对象的值,另一个对象也变化)
    vue在js公用文件中使用this
    VUE百度地图API调用(手机端、PC端、微信通用)
    promise与async/await
    手机端软键盘弹出又收回后,页面下方留空白、样式定位错乱或不能滚动
    移动端表格(固定首列及表头)
    VUE面试知识整理
  • 原文地址:https://www.cnblogs.com/w2154/p/4672066.html
Copyright © 2011-2022 走看看