1.1  mysql逻辑结构

  

    第一层: 负责连接处理,授权认证,安全等事情

    第二层:负责mysql的大部分核心功能 ,查询解析,分析,优化,缓存和所有的内置函数,所有跨存储引擎的功能都在这一层实现,,存储过程,视图,触发器等

    第三层:存储引擎,负责mysql中数据的提取和存储;

1.2 并发控制——

   共享锁:也叫读锁,读锁是共享的,多个连接可以同时获取数据并互不干扰!

   排他锁:也叫写锁,排他性,阻塞其他的写锁和读锁;在同一时间内,只能有一个用户执行写入操作,并且防止其他用户进行读取正在写入的同一资源,

   锁粒度

    表锁:表锁是mysql中最基本的锁策略,并且是开销最小的策略,它锁定整张表,当有用户对它进行(insert,delete,update)操作时,首先获取写锁,阻塞其他的用户进行读写操作!

          read local 表锁在特定的情况下可以支持某些类型的并发写操作,,此外写锁拥有更高的优先级,因此一个写锁的请求可能会被插入到读锁队列的前面

    行级锁:行级锁可以最大程度的支持并发处理,同时也会对性能开销更大!

1.3 事物管理

   原子性:一个事务必须被认为是一个不可以分割的最小工作单元,事务内的操作要么全部提交成功,要么失败回滚,对于事务来说不能只执行其中的一部分!这就是事务的原子性

  一致性:数据库总是从一个一致性状态转移到另一个一致性状态

  隔离性:一个事务中所做的操作在未最终提交前,对其他事务是不可见的

  持久性:一旦事务提交,则其所做的修改就会永久的保存到数据库中!

  并发情况下带来的问题

    1、脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据

    2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。

    3、幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像产生了幻觉一样,这就叫幻读。

      mysql在的innoDB和XtraDB通过多版本并发控制(MVCC,Multiversion Concurrency  Control)解决了幻读的问题

    小结:不可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除。解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表

  事务隔离级别

   

高性能mysql笔记 第一章 mysql架构的更多相关文章

  1. 《高性能MySQL》——第一章MySQL的架构与历史

    1.可以使用SHOW TABLE STATUS查询表的相关信息. 2.默认存储引擎是InnoDB,如果没有什么很特殊的要求,InnoDB引擎是我们最好的选择. 3.mysql的infobright引擎 ...

  2. Spring In Action 第4版笔记-第一章-001架构

    1.Spring’s fundamental mission: Spring simplifies Java development. 2.To back up its attack on Java ...

  3. Android群英传笔记——第一章:Android体系与系统架构

    Android群英传笔记--第一章:Android体系与系统架构 图片都是摘抄自网络 今天确实挺忙的,不过把第一章的笔记做一下还是可以的,嘿嘿 1.1 Google的生态圈 还是得从Android的起 ...

  4. Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式

    Android开发艺术探索笔记--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activ ...

  5. C++ Primer 笔记 第一章

    C++ Primer 学习笔记 第一章 快速入门 1.1 main函数 系统通过调用main函数来执行程序,并通过main函数的返回值确定程序是否成功执行完毕.通常返回0值表明程序成功执行完毕: ma ...

  6. 深入浅出mysql笔记---1、mysql下载安装

    深入浅出mysql笔记---1.mysql下载安装 一.总结 一句话总结: linux下rpm安装即可 1.linux的wget命令作用? 下载文件的工具:比如wget http://cn.wordp ...

  7. 高性能MySQL(第4版) 第一章 MySQL架构 读书笔记

    这本书去年11月出的,今年中文版也出了,并且直接上了微信读书,之后有空就读一读,分享下读书笔记~ 原文内容比较充实,建议有时间可以读一下原文. 第一章主要是个概览. MySQL的逻辑架构 默认情况下, ...

  8. 第一章 MYSQL的架构和历史

    在读第一章的过程中,整理出来了一些重要的概念. 锁粒度  表锁(服务器实现,忽略存储引擎). 行锁(存储引擎实现,服务器没有实现). 事务的ACID概念 原子性(要么全部成功,要么全部回滚). 一致性 ...

  9. 第一章·MySQL介绍及安装

    一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 4.1 什么是数据? 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客 ...

随机推荐

  1. Java fork join ForkJoinPool 用法例子

    本例是把一个大的数组求和的计算的大任务分解到在小范围内求和的小任务,然后把这些小任务之和加起来就是所求之结果. 技术:JDK8.0, Javafork-join模式下的RecursiveTask技术, ...

  2. Ubuntu 16.04下安装Anaconda

    1.下载Anaconda到系统 官网:https://www.anaconda.com/download/ 清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu. ...

  3. 忙里偷闲( ˇˍˇ )闲里偷学【C语言篇】——(8)枚举、补码

    一.枚举 # include <stdio.h> enum WeekDay //定义了一个数据类型(值只能写以下值) { MonDay, TuesDay, WednesDay, Thurs ...

  4. Linux开发环境搭建与使用系列教程

    00.Linux开发环境搭建与使用1——Linux简史 01.Linux开发环境搭建与使用2——Linux系统(ubuntu)安装方案 02.Linux开发环境搭建与使用3——通过虚拟机安装系统(ub ...

  5. mysqldump --single-transaction 和--lock-tables参数详解

    mysqldump的备份原理 mysqldump在备份过程中,是采用查询备份相关表的数据,然后导出,拼接成insert语句的形式进行备份.   关于--single-transaction 和--lo ...

  6. Spring学习笔记之六(数据源的配置)

    1.前言 上一篇博客分析了,Spring中实现AOP的两种动态代理的机制,以下这篇博客.来解说一下Spring中的数据源的配置.  2.DAO支持的模板类 Spring提供了非常多关于Dao支持的模板 ...

  7. SharePoint Permission Analyzer 权限分析仪

    SharePoint Permission Analyzer 权限分析仪         这是一个很好的应用,为了分析SharePoint权限.它会扫描整个网站集,建一个站点的权限架构.       ...

  8. 增删改查 T-SQL最基本操作

    use test --操作test表 go --查询 select * from stu -- 查询stu里的所有数据 select top 3 * from stu -- 查询stu里前三行数据 s ...

  9. 自定义view布局过程详解

    布局过程,就是程序在运行时利用布局文件的代码来计算出实际尺寸的过程. 布局分为两个阶段:测量阶段和布局阶段. 测量阶段:从上到下递归地调用每个 View 或者 ViewGroup 的 measure( ...

  10. Swift API设计原则

    注: 本文摘自 Swift API设计指南 一.基本原则 通俗易懂的API是设计者最重要的目标.实体.变量.函数等都具有一次申明.重复使用的性质,所以一个好的API设计,应该能够使用少量的解读和示例就 ...