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

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

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

在加索引的时候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.20230611.cn/post/357.html

分享给朋友:

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

Mysql子句查询陷阱

Mysql子句查询陷阱

例如我们需要查询商品表中每个分类中商品id最大的记录,并且显示商品价格以下是表结构:id     catename         title &nb...

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

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

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

Left join,​Right join,​Inner join的区别实例讲解

Left join,​Right join,​Inner join的区别实例讲解

Left join:即左连接,是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。Right join:即右连接,是以右表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将右表...

mysql恢复数据库,mysql数据库log文件恢复数据库

mysql恢复数据库,mysql数据库log文件恢复数据库

由于在开发中不小心删除客户上传的商品数据,客户本身也不好说话,只好恢复数据库,记录下过程。原理是数据库开启bin-log功能,然后再通过备份的bin-log进行数据库恢复。先查找备份的数据库日志二进制文件。一般在mysql的data文件夹中,文件名大概为mysql-bin.00001,具体看文件的修...

 mysql count 性能优化,mysql count(*)优化

mysql count 性能优化,mysql count(*)优化

1.很多人认为count查询非常快,但是在加上筛选条件那就是未必的了!测试:user表中4000w数据(1).SELECT  count(*)   from user;   用时0.00s (2).SELECT...

mysql diff,mysqldiff 安装,mysqldiff 用法

mysql diff,mysqldiff 安装,mysqldiff 用法

项目和第三方系统对接,由于第三方开发人员属于兼职,数据库结构不一致的问题只能我来处理。此处文章用本地模拟演示。数据库资料:1号服务器:  账号root 密码root  IP:127.0.0.1  数据库名称:data1 2号服务器...