高性能mysql笔记 第一章 mysql架构
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架构的更多相关文章
- 《高性能MySQL》——第一章MySQL的架构与历史
1.可以使用SHOW TABLE STATUS查询表的相关信息. 2.默认存储引擎是InnoDB,如果没有什么很特殊的要求,InnoDB引擎是我们最好的选择. 3.mysql的infobright引擎 ...
- Spring In Action 第4版笔记-第一章-001架构
1.Spring’s fundamental mission: Spring simplifies Java development. 2.To back up its attack on Java ...
- Android群英传笔记——第一章:Android体系与系统架构
Android群英传笔记--第一章:Android体系与系统架构 图片都是摘抄自网络 今天确实挺忙的,不过把第一章的笔记做一下还是可以的,嘿嘿 1.1 Google的生态圈 还是得从Android的起 ...
- Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式
Android开发艺术探索笔记--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activ ...
- C++ Primer 笔记 第一章
C++ Primer 学习笔记 第一章 快速入门 1.1 main函数 系统通过调用main函数来执行程序,并通过main函数的返回值确定程序是否成功执行完毕.通常返回0值表明程序成功执行完毕: ma ...
- 深入浅出mysql笔记---1、mysql下载安装
深入浅出mysql笔记---1.mysql下载安装 一.总结 一句话总结: linux下rpm安装即可 1.linux的wget命令作用? 下载文件的工具:比如wget http://cn.wordp ...
- 高性能MySQL(第4版) 第一章 MySQL架构 读书笔记
这本书去年11月出的,今年中文版也出了,并且直接上了微信读书,之后有空就读一读,分享下读书笔记~ 原文内容比较充实,建议有时间可以读一下原文. 第一章主要是个概览. MySQL的逻辑架构 默认情况下, ...
- 第一章 MYSQL的架构和历史
在读第一章的过程中,整理出来了一些重要的概念. 锁粒度 表锁(服务器实现,忽略存储引擎). 行锁(存储引擎实现,服务器没有实现). 事务的ACID概念 原子性(要么全部成功,要么全部回滚). 一致性 ...
- 第一章·MySQL介绍及安装
一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 4.1 什么是数据? 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客 ...
随机推荐
- css 翻牌 翻转 3d翻转 特效
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- maven打包到本地库
mvn install:install-file -DgroupId=com.alipay -DartifactId=com.alipay.core -Dversion=20180104135026 ...
- Linux下停Tomcat服务器,出现Connection refused错误解决办法
错误内容如下 : 2010-9-19 16:09:58 org.apache.catalina.startup.Catalina stopServer 严重: Catalina.stop: java. ...
- git 分支建立及合并
分支的新建与合并 让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流. 你将经历如下步骤: 开发某个网站. 为实现某个新的需求,创建一个分支. 在这个分支上开展工作. 正 ...
- [Vue] Dynamic Vue.js Components with the component element
You can dynamically switch between components in a template by using the reserved <component> ...
- svn删除文件出错的经验总结
作者:朱金灿 来源:http://blog.csdn.net/clever101 今天有个同事在没有将工程从VS解决方案中移除的情况下使用svn对一个工程重命名,结果在提交时出错了,提示:没有匹配的可 ...
- Weblogic中可以使用的脚本
启动被管服务器的脚本 rm -rf ../servers/server5002/stage/* rm -rf ../servers/server5002/tmp/* sleep 20 USER_MEM ...
- 【u219】最长链
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 现给出一棵N个结点二叉树,问这棵二叉树中最长链的长度为多少,保证了1号结点为二叉树的根. [提示] 关 ...
- WPF 触摸到事件
原文:WPF 触摸到事件 本文从代码底层告诉大家,在触摸屏幕之后是如何拿到触摸点并且转换为事件 在 WPF 界面框架核心就是交互和渲染,触摸是交互的一部分.在 WPF 是需要使用多个线程来做触摸和渲染 ...
- ADO.NET - 批量更新或添加数据
方法一:使用SqlBulkCopy实现批量更新或添加数据. SqlBulkCopy类一般只能用来将数据批量插入打数据库中,如果数据表中设置了主键,出现重复数据的话会报错,如果没有设置主键,那么将会添加 ...