php普通索引和唯一索引,MySQL中普通索引和唯一索引的区别详解
本篇文章介绍了MySQL中普通索引和唯一索引的区别,讲解很详细,希望对学习MySQL的朋友有帮助!
需要注意的是:
redo log中的数据,可能还没有 flush 到磁盘,磁盘中的 Page 1 和 Page 2 中并没有最新数据,但我们依然可以拿到最新数据(内存中的 Page 1 就是最新的,Page 2 虽然不是最新的,但是从磁盘读到内存中后,执行了merge操作,内存中的 Page 2 就是最新的了。)
如果此时 MySQL 异常宕机了,比如服务器异常掉电,change buffer 中的数据会不会丢?
change buffer 中的数据分为两部分,一部分是已经merge到ibdata1中的数据,这部分数据已经持久化,不会丢失。另一部分数据,还在 change buffer 中,没有merge 到ibdata1,分 3 种情况:
(1)change buffer 写入数据到内存,redo log 也已经写入(ib-log-filex),但是未 commit,binlog中也没有fsync到磁盘,这部分数据会丢失;
(2)change buffer 写入数据到内存,redo log 也已经写入(ib-log-filex),但是未 commit,binlog 已写入到磁盘,这部分不会多丢失,异常重启后会先从 binlog 恢复 redo log,再从 redo log 恢复 change buffer;
(3)change buffer 写入数据到内存,redo log 和 binlog 都已经fsync,直接从redo log 恢复,不会丢失。
redo log 主要节省的是随机写磁盘的 IO 消耗(转成顺序写),而 change buffer 主要节省的则是随机读磁盘的 IO 消耗
更多MySQL相关教程,请关注PHP中文网!
php普通索引和唯一索引,MySQL中普通索引和唯一索引的区别详解相关推荐
- mysql中engine=innodb和engine=myisam的区别详解
最开始用MySQL Administrator建数据库的时候,表缺省是InnoDB类型,也就没有在意.后来用Access2MySQL导数据的时候发现只能导成 MyISAM类型的表,不知道这两种类型有什 ...
- decimal类型对象里面定义什么类型_MySQL中Decimal类型和Float Double的区别(详解)
MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型. 其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形 ...
- revoke mysql_浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解
MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利 grant selec ...
- mysql revoke 授权_浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解
MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利 grant selec ...
- python定义数组并赋值_python中的数组赋值与拷贝的区别详解
具体的注解我已经写在了程序里面:通俗的解释了python里面的浅拷贝与深拷贝的不同,请看程序. # -*- coding: utf-8 -*- import numpy as np import co ...
- Java中print、printf、println的区别 详解
Java中print.printf.println的区别详解 printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和pr ...
- python random randint_python中random.randint和random.randrange的区别详解
在python中,通过导入random库,就能使用randint 和 randrange 这两个方法来产生随机整数.那这两个方法的区别在于什么地方呢?让我们一起来看看! 区别: randint 产生的 ...
- linux中cat、more、less命令区别详解
linux中cat.more.less命令区别详解 转自:https://blog.csdn.net/xyw_blog/article/details/16861681 众所周知linux中命令cat ...
- python中randint是什么意思_python中random.randint和random.randrange的区别详解
在python中,通过导入random库,就能使用randint 和 randrange 这两个方法来产生随机整数.那这两个方法的区别在于什么地方呢?让我们一起来看看! 区别: randint 产生的 ...
- mysql中jdbc的metadata_JDBC元数据操作——DatabaseMetaData接口详解
在JDBC技术规范中,提供了Connection,Statement,ResultSet这三个开发过程中经常用到的接口.针对与每个接口,JDBC规范提供了相应的接口描述对象,也就是xxxMetaDat ...
最新文章
- 末日来临,你的编程语言能干嘛? | 每日趣闻
- python timeit class Timer()类 timeit(string, string) repeat(string, string) default_timer() 耗时检测 执行速度
- 傅里叶变换处理音频c++_积分变换(1)——傅里叶级数
- AES加密算法256位密钥与128位密钥的不同之处
- 网关Ocelot功能演示完结,久等了~~~
- STL10-deque容器
- Python BeautifulSoup和Requests爬虫爬取中关村手机资料
- learning rate 学习速率
- 分布式数据库中全局唯一主键
- flask manage port_nginx+uwsgi+python+flask环境搭建
- 11.17 shell特殊符号cut命令,sort_wc_uniq命令,tee_tr_split命令,shell特殊符号
- 同时安装Python2,Python3如何解决冲突问题【官方解法】
- AirBuddy技巧:如何检查Mac电脑是否支持低功耗蓝牙?
- ubuntu14上安装ros教程
- Java流处理之序列化和打印流
- Review-常用数学符号的英文及中文叫法
- 驴子圈资讯:携程移动端酒店预订首超PC端
- idea中的maven使用
- 【大学生软件测试基础】图书阅读指南 - 决策表法
- 嵌入式工程师,怎么不被历史洪流冲走?
热门文章
- 第二讲 ODE欧拉数值方法
- 暑假N天乐【比赛篇】 —— 2019杭电暑期多校训练营(第五场)
- codevs 3164 质因数分解
- error: declaration of 'cv::Mat R ' shadows a parameter
- C语言中的static 详细分析 2014-10-11 15:15 143人阅读 评论(0) 收藏...
- Centos 6.4 搭建LANMP一键安装版
- 基础知识收藏(ASP.NET的OnClientClick与OnClick事件)-2013.07.10
- Python 安装管理器 pythonz
- [html] Google map的地理编码javascript例子 -- Google map geocoder example
- 矩阵正态分布基础1 外形式、外积与微分形式简介