文档章节

mysql新版本索引优化简介

蓝狐乐队
 蓝狐乐队
发布于 2015/01/08 11:34
字数 412
阅读 165
收藏 3

索引创建优化:
fast index creation
mysql5.5之前不包括5.5,创建索引或修改删除这类的ddl操作过程为:
1、首先创建一张新的临时表,表结构为通过alter table 新定义的结构
2、然后把原表中的数据导入到临时表中
3、接着删除原表
4、最后把临时表重命名为原来的表名

innodb 存储引擎从1.0.x开始支持fast index creation(快速索引创建)-简称:FIC
对于辅助索引的创建,innodb存储引擎会对创建索引的表加上一个S锁,在创建过程中,不需要重建表,速度快了很多,删除辅助索引也会快很多,

存在的问题:
(1)在创建过程中只能对该表进行读操作,若有大量的事物需要对目标表进行写操作,数据库服务器不可用。
(2)FIC方式只限于辅助索引,对于主键的创建与删除同样需要重建一张表

online ddl
虽然FIC可以让innodb存储引擎避免创建临时表,从而提高了索引的创建效率,但是会阻塞DDL操作,从mysql5.6开始支持了online DDL(在线数据定义)操作,
其允许辅助索引创建的同时,还允许其他诸如insert,update,delete这类的DDL操作,此外一下这几类DDL操作都可以通过“在线”的方式进行操作:
(1)辅助索引的创建与删除
(2)改变自增长值
(3)添加删除外键约束
(4)列的重命名

© 著作权归作者所有

共有 人打赏支持
蓝狐乐队
粉丝 104
博文 322
码字总数 89813
作品 0
昌平
程序员
私信 提问
PHP 学习必备技能(基础略过)

1.面向对象编程 面向对象编程基本概念 类和对象的关系 如何定义类 成员属性(变量) 如何创建对象实例及如何访问对象属性 对象在内存中存在的形式 栈、堆、全局区、常量区和代码区的关系 成员方...

风雪中的舞者
2015/08/05
0
0
MySQL全文搜索引擎--mysqlcft

MySQL在高并发连接、数据库记录数较多的情况下,SELECT ... WHERE ... LIKE '%...%'的全文搜索方式不仅效率差,而且以通配符%开头作查询时,使用不到索引,需要全表扫描,对数据库的压力也很...

张宴
2012/11/29
14.3K
2
infobright简介

infobright,一个基于mysql的数据仓库系统实现,它已经是很多开源或商用BI系统的底层存储引擎。 根据这几天看到的介绍与白皮书,又做了些试验,依据自己的理解先作一个概述性的介绍,下次再描...

小编辑
2010/02/03
5.4K
3
lnmp安装配置

一、总体简介 Lnmp架构(Linux+nginx+mysql+php)是目前网站的主流架构,这个架构包含了一个网站的最基本要求:运行环境+web容器+动态页面处理+存储。当然同样主流的架构还有lamp,但是个人认...

wx584a086dd4e8a
2017/06/08
0
0
AliSQL · 特性介绍 · 支持 Invisible Indexes

前言 MySQL 8.0 引入了 Invisible Indexes 这一个特性,对于 DBA 同学来说是一大福音,索引生命周期管理除了有和无外,又多了一种形态–可见和不可见,进而对业务SQL的调优又多了一种手段。 ...

阿里云RDS-数据库内核组
2017/07/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java网络编程

基本概念 网络IO会涉及到同步,异步,阻塞,非阻塞等几个概念。 一个网络IO读取过程是数据从 网卡 到 内核缓冲区 到 用户内存 的过程。同步和异步区别在于数据从内核到用户内存的过程是否需要...

春哥大魔王的博客
25分钟前
1
0
Spring "reg:zookeeper" 的前缀 "reg" 未绑定等类似问题解决方案。

今天同事遇到一个Spring启动加载配置文件时,不识别reg:zookeeper标签的问题。 我查看配置,发现是Spring配置文件的头部没有引入reg标签的命名空间,具体如下图: 所以,以后遇到类似的标签未...

花漾年华
54分钟前
1
0
阿里云领衔云市场

近期,2018年Q4及全年的全球云基础设施服务市场数据新鲜出炉,发布方是美国市场研究机构Synergy Research Group。这个机构是专做电信网络市场情报的公司,成立于1999年,每年都会公布各大公有...

linuxCool
今天
2
0
C++友元函数和友元类(C++ friend)详解

私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行。这固然能够带来数据隐藏的好处,利于将来程序的扩充,但也会增加程序书...

shzwork
今天
3
0
JAVA对map进行分组

public static Map<String, List<Map<String, Object>>> transition(List<Map<String, Object>> list){ Map<String, List<Map<String, Object>>> map = new HashMap<>(); //......

火龙战士
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部