第八课——MySQL优化之InnoDB基础原理
一、事务隔离级别
理解各种事务隔离级别的优缺点
(一)四种事务隔离级别总结

(二)四种事务隔离级别下,去重现脏读现象、不可重复读现象、幻读现象
1、在RU隔离级别下,会出现脏读现象

2、在RC隔离级别下,会出现不可重复读现

3、在RR隔离级别下,理论上会幻读现象,但是innodb存储引擎已经利用MVCC机制解决了RR下的幻读问题。

二、UNDO和REDO日志
(一)UNDO日志
1、undo日志是为了实现事务的原子性,以及实现了多版本并发控制MVCC;
2、事务在修改之前先将前镜像存入到undo日志来保证事务的原子性(undo日志存储在共享表空间里,也会在innodb缓冲池里缓存undo页)。

(二)REDO日志
1、redo日志保证数据库的持久性,也用于实例恢复;
2、redo log是innodb的事务日志,存放在ib_logfile*文件里,有专门的缓存内存(log buffer pool)
相比redo log,undo log没有单独的日志文件,存放在共享表空间(idbdata文件),且没有单独的缓存内存,存放在innod缓冲池(innodb buffer pool)*

第八课——MySQL优化之InnoDB基础原理的更多相关文章
- MySQL优化的一些基础
在Apache, PHP, mysql的体系架构中,MySQL对于性能的影响最大,也是关键的核心部分.对于Discuz!论坛程序也是如此,MySQL的设置是否合理优化,直接 影响到论坛的速度和承载量! ...
- MySQL优化步 (InnoDB)
MySQL优化步 (InnoDB) 优化的优先级 数据库结构设计 SQL语句 数据库存储引擎和选择和参数配置 系统选择及优化 硬件升级 图书 MySQL必知必会 高性能MySQL 深入浅出MySQL ...
- 第九课——MySQL优化之索引和执行计划
一.创建索引需要关注什么? 1.关注基数列唯一键的数量: 比如性别,该列只有男女之分,所以性别列基数是2: 2.关注选择性列唯一键与行数的比值,这个比值范围在0~1之前,值越小越好: 其实,选择性列唯 ...
- MySQL系列(九)--InnoDB索引原理
InnoDB在MySQL5.6版本后作为默认存储引擎,也是我们大部分场景要使用的,而InnoDB索引通过B+树实现,叫做B-tree索引.我们默认创建的 索引就是B-tree索引,所以理解B-tree ...
- Mysql优化系列--Innodb引擎下mysql自身配置优化-转
原文链接:http://www.cnblogs.com/kevingrace/p/6133818.html 谢谢楼主 1.简单介绍 InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全 ...
- [妙味JS基础]第八课:return、定时器基础
知识点总结 return 1)函数名+括号 = return 返回值 2)所有的函数默认的返回值 = 未定义 3)return后面的代码不执行 arguments =>为实参的集合,当参数个数 ...
- 八,mysql优化——读写分离
读写分离目的是给大型网站缓解查询压力.
- 深入浅出分析MySQL MyISAM与INNODB索引原理、优缺点、主程面试常问问题详解
本文浅显的分析了MySQL索引的原理及针对主程面试的一些问题,对各种资料进行了分析总结,分享给大家,希望祝大家早上走上属于自己的"成金之路". 学习知识最好的方式是带着问题去研究所 ...
- 深入浅出分析MySQL MyISAM与INNODB索引原理、优缺点分析
本文浅显的分析了MySQL索引的原理及针对主程面试的一些问题,对各种资料进行了分析总结,分享给大家,希望祝大家早上走上属于自己的"成金之路". 学习知识最好的方式是带着问题去研究所 ...
随机推荐
- atitit.设计文档---操作日志的实现
atitit.设计文档---操作日志的实现 日志查询 1 ----mybatis 配置... 1 添加日志 1 日志查询 <a class="l-link" href=&q ...
- Node.js综述
前言 本综述文章旨在帮助读者深入理解下Node.js的本质,不去关注应用的细节,我认为真正的技术问题只有在动手写代码的时候才会遇到,那个阶段解决问题才是真正有意义的. 发展史 Node.js是Ry ...
- yii2中的资源....
1.模板文件中访问view和controller,view : $this,controller :$this->context 模板文件显示流程: 1.控制器会在render中,把控制器本身, ...
- PyCharm 在django程序中单独运行py文件
使用PyCharm开发django程序,发现如果不在命令行而在IDE的django项目中直接运行django程序,发现报错,程序如下: def main(): from people.models ...
- 文件操作之格式化IO
其实在我使用最多的文件操作中,还是喜欢格式化IO控制的方式,简单方便易理解. #include <stdio.h> #include<stdlib.h> int main() ...
- QT在CT上的安装及运行
http://www.cubie.cc/forum.php?mod=viewthread&tid=2662&highlight=qt
- SDRAM基础
一. 介绍 存储器的最初结构为线性,它在任何时刻,地址线中都只能有一位有效.设容量为N×M的存储器有S0-Sn-1条地址线:当容量增大时,地址选择线的条数也要线性增多,利用地址译码虽然可有效地减少地址 ...
- zend Studio10.6.2破解注册码
下载破解包:http://download.csdn.net/detail/gsls200808/7982115 安装方法:破解的jar文件com.zend.verifier_10.6.2.v2014 ...
- DTD与XML Schema都是XML文档。(选择1项)
DTD与XML Schema都是XML文档.(选择1项) A.正确 B.不正确 解答:DTD不是XML文件, schema是XML文档
- mysql -- 存储过程中 declare 和 set 定义变量的区别
mysql存储过程中,定义变量有两种方式:1.使用set或select直接赋值,变量名以 @ 开头.例如:set @var=1;可以在一个会话的任何地方声明,作用域是整个会话,称为会话变量. 2.以 ...