当前位置:首页 > SQL > 正文内容

mysql添加索引不锁表,mysql online dll,mysql 添加索引锁表

高老师3年前 (2021-11-06)SQL3400

在加索引的时候100W数据加一个索引导致机器锁表,尤其机器配置只有2G需要时间较长,于是才了解到mysql也支持在线dll,以前只知道tidb支持。

添加索引的方式如下:

ALTER TABLE tbl_name ADD PRIMARY KEY (column), ALGORITHM=INPLACE, LOCK=NONE;

LOCK参数的意思

  1. LOCK=NONE:允许并发的查询和DML操作

  2. LOCK=SHARED:允许并发的查询,但阻塞DML操作

  3. LOCK=DEFAULT: 由系统决定,允许尽可能多的并发性(并发查询、DML或两者)。如果省略LOCK子句相当于指定LOCK=DEFAULT

  4. LOCK=EXCLUSIVE:阻塞并发查询和DML操作。

ALGORITHM参数的意思

  1. ALGORITHM=COPY:采用拷表方式进行表变更,与pt-osc/gh-ost类似;

  2. ALGORITHM=INPLACE:仅需要进行引擎层数据改动,不涉及Server层;

然鹅在执行时提示我不支持INPLACE,建议我换为COPY,好吧,我改

然后再次执行时提示我不支持设置为NONE,只能设置DEFAULT,好吧没法玩了。

看了下阿里云的rds文档提示需要先转换为InnoDB引擎才能完全支持mysql的online dll

alter table tab_name engine=innodb;

但是我设置为InnoDB还不是卡很久,看来在建表时就要设计好。本次记录下添加索引不锁表的方法。晚上设置定时任务来执行转换。

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.5b1.cn/post/357.html

分享给朋友:

“mysql添加索引不锁表,mysql online dll,mysql 添加索引锁表” 的相关文章

mysql 中文占几个字节,mysql varchar 字节数

mysql 中文占几个字节,mysql varchar 字节数

我们要明白Mysql字段的长度能存多少东西,首先需要明白Mysql是计算字节长度,还是计算字符长度。在mysql4.x的版本长度代表的是字节长度.例如在mysql4.x的版本中varchar(10)能储存的中英文长度如下:(1).采用ISO8859-1编码方式时,一个中/英文都只占一个字节;(2)....

Mysql exists型子查询

Mysql exists型子查询

需求查询出存在商品的商品分类.    先看看分类表:id(分类的id)    catename(分类名) 1         手机 2 &n...

mysql没有快捷方式,mysql快捷方式,mysql启动快捷方式

mysql没有快捷方式,mysql快捷方式,mysql启动快捷方式

有很多集成环境安装完成之后是没有快捷方式的,例如西部数码的网站管理助手4.0,、 更或者是护卫神PHP套件都是一样的。安装完成最多给你安装一个PhPmyadmin让你管理Mysql,但是对于经常使用命令行的我们来说是非常不方面的,而且还必须安装PhPmyadmin来管理。下面就让我们自己手...

 mysql视图有什么用, mysql视图的学习

mysql视图有什么用, mysql视图的学习

我们从一个结果集中查询信息一般都是select *  from (select...),每次都要编写from (select...)非常麻烦,于是我们将结果集保存起来,这就是视图的便利。创建视图的命令为:create   view  &nb...

mysql表视图管理语句

mysql表视图管理语句

1.查看所有表,包括视图表,show  tables;2.查看表结果,包括视图表,desc  表名3.查看建表过程,show   create   table  表名;4.查看建视图过程,show   create   view...

mysql常用函数

mysql常用函数

1.floor(x)返回小于x的整数,向下取整,用法,商品的价格是浮点型的,需要向下取整 eg:select id,title,floor(price)  from  shopgoods2.rand()返回0-1之间的随机数 select rand() select rand()...