当前位置: 首页 > news >正文

Mysql online DDL 线上无锁添加索引

只能通过ALTER TABLE不能create index

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

参数说明:

ALGORITHM=INPLACE
更优秀的解决方案,在当前表加索引,步骤:
1.创建索引(二级索引)数据字典
2.加共享表锁,禁止DML,允许查询
3.读取聚簇索引,构造新的索引项,排序并插
入新索引
4.等待打开当前表的所有只读事务提交
5.创建索引结束ALGORITHM=COPY
通过临时表创建索引,需要多一倍存储,还有更多的IO,步骤:
1.新建带索引(主键索引)的临时表
2.锁原表,禁止DML,允许查询
3.将原表数据拷贝到临时表
4.禁止读写,进行rename,升级字典锁
5.完成创建索引操作LOCK=DEFAULT:默认方式,MySQL自行判断使用哪种LOCK模式,尽量不锁表
LOCK=NONE:无锁:允许Online DDL期间进行并发读写操作。如果Online DDL操
作不支持对表的继续写入,则DDL操作失败,对表修改无效
LOCK=SHARED:共享锁:Online DDL操作期间堵塞写入,不影响读取
LOCK=EXCLUSIVE:排它锁:Online DDL操作期间不允许对锁表进行任何操作

给1E数据库在线加索引

数据库在线加索引
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 7995759
Server version: 5.7.25-log Source distributionCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MySQL [(none)]> use sdorica_expMySQL [sdorica_exp]> show index from gashapon_outcome_records;
Empty set (0.00 sec)MySQL [sdorica_exp]> select count(1) from gashapon_outcome_records;
+-----------+
| count(1)  |
+-----------+
| 111579926 |
+-----------+
1 row in set (1 min 10.13 sec)MySQL [sdorica_exp]> ALTER TABLE gashapon_outcome_records ADD INDEX idx_roll_gashapon_record_id (roll_gashapon_record_id) , ALGORITHM=INPLACE, LOCK=NONE;Query OK, 0 rows affected (15 min 34.16 sec)
Records: 0  Duplicates: 0  Warnings: 0MySQL [sdorica_exp]> show index from gashapon_outcome_records;
+--------------------------+------------+-----------------------------+--------------+-------------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table                    | Non_unique | Key_name                    | Seq_in_index | Column_name             | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+--------------------------+------------+-----------------------------+--------------+-------------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| gashapon_outcome_records |          1 | idx_roll_gashapon_record_id |            1 | roll_gashapon_record_id | A         |    51825872 |     NULL | NULL   | YES  | BTREE      |         |               |
+--------------------------+------------+-----------------------------+--------------+-------------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
1 row in set (0.01 sec)MySQL [sdorica_exp]> 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35419.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

string应用

将’a’从字符串s1中全部删除 s1.erase(std::remove(s1.begin(), s1.end(), a), s1.end());string s(b,e); //以区间b,e内的字符作为字符串s的初值 string s4(s3.begin(),s3.begin()5);...

python学习之路(第八天)---re模块正则表达式

python学习之路(第八天)—re模块正则表达式 python学习之路(第八天)---re模块正则表达式在线正则匹配正则匹配语法re.compile方法re.match方法re.search方法re.finditer方法转义匹配findall()正则表达式的实例正则表达式&#xff…...

移动端开发

移动端应用 H5 移动端页面App小程序 移动端开发方式 原生开发(Native App)网页开发(Web App)混合开发(Hybrid App)跨平台移动端框架 跨 App 平台:React Native、weex、Flutter跨 App、小程序、…...

bootstrap table自定义新增行

.deleattrbtn,.addtrbtn{width: 60px;color: #fff;font-size: 12px;background-color: #3177E7;border-radius: 2px;border: 0; }#addtrdiv,#back_addtrdiv{margin: 10px 22px;text-align: right; }.table-bordered{table-layout: fixed;font-size: 12px; }.table th, .table...

SqlServer反向生成PowerDesigner物理数据模型

要以管理员的身份运行!!!! 我的已经汉化了一部分。选择反向工程里的“Database” 名字随意 点击确定,–>使用数据源,可以不选管理员 点击使用数据源,右边那个,小白色垃圾桶 选…...

毕设系列 -- 基于STM32的人体红外测温枪温度采集系统

文章目录1 简介2 主要器件3 实现效果4 设计原理MLX90614 红外温度传感器5 部分实现代码6 最后1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的单片机项目 基于STM32的人体红外测温枪温度采集系统 大家可用于 课程设计 或 毕业…...

laravel 8 实现excel 导出

composer 下载 composer require maatwebsite/excel 引入 use Elasticsearch\ClientBuilder; 创建excel文件 php artisan make:Exports FangExports FangExports 里面 return Fang::all(); php后台 //导出房东excelpublic function exports(){return Excel::download(…...

Vue相关:

目录 1,说一下vue最大特点是什么或者说vue核心是什么 2,说一下vue常用基本指令有哪些 3,Vue常用的修饰符...

spring-cloud-kubernetes-feign实战

关于spring-cloud-kubernetes spring-cloud-kubernetes是springcloud官方推出的开源项目,用于将Spring Cloud和Spring Boot应用运行在kubernetes环境,并且提供了通用的接口来调用kubernetes服务,主要提供了应用程序使用k8s本身功能&#xff…...

【Unity】如何将资源包里的Prefabs资源为己所用

步骤一、将所需要的prefab从外部导入的资源拖入Scene中。二、右键该预制体,选择Unpack Prefab Completely取消该预制体及其子物体与资源包中预制体的关联。三、将该预制体拖动到自己的prefabs文件夹目录下,制作成自己项目的预制体。四、在Project面板下&…...

docker学习笔记(一)

概述 Docker是一款针对程序开发人员和系统管理员来开发、部署、运行应用的一款虚拟化平台。Docker 可以让你像使用集装箱一样快速的组合成应用,并且可以像运输标准集装箱一样,尽可能的屏蔽代码层面的差异。Docker 会尽可能的缩短从代码测试到产品部署的时…...

防火墙高可靠性

双机热备、BFD双向转发检测、IP-LINK链路检测、Link-Group逻辑组、ETH-Trunk链路捆绑、Bypass,跨数据中心集群,双主控、业务板备份、数据中心会话同步 双机热备 目的:为了防止单点故障 实现:两台硬件软件相同的FW之间通过一条独…...

手写Promise.all()方法

有1个promise报错了,其他的promis会执行吗? 会的,因为Promsie在实例化时候就已经执行完了。手写Promise.all()方法 function PromiseAll(promiseArray){//返回的一定是个proimsereturn new Promise((resolve,reject)>{//首先判断传入的是…...

Centos8.0系统升级到最新版本

一 ,Centos8.0更换国内源(阿里源) 1, 备份旧的配置文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2,进入cd /etc/yum.repos.d cd /etc/yum.repos.d3,下载新的 Ce…...

高端音响的死亡被大大夸大了

几年前,在 MP3 盗版时代的鼎盛时期——当高端音频世界哀叹 MP3 文件的糟糕音质,而 MP3 用户乐于用音质换取免费音乐时——一位业内同事问我我以为高端音频已经死了。我向她保证不,一部分音乐迷,虽然可能不是主流,但总是…...

Java学习笔记--13.网络编程

Java学习笔记–13 第十章 网络编程 目录Java学习笔记--13前言网络编程1.定义2.TCP通信(1).ServerSocket(2).Socket3.UDP通信(1).发送方(2).接收方前言 21世纪,走进了信息时代,各种各样的软件层出不穷,但是总离不开程序开发,离不…...

python100例045求1-100之和用sum(range(1,101))

""" 题目045:统计 1 到 100 之和 """ def test045():count 0for i in range(1, 101):count iprint(count)# 二print(sum(range(1, 101))) test045()...

PyScreeze 基本使用(1)

PyScreeze 基本使用(1) PyScreeze屏幕截图 PyScreeze是Python 2和3的一个简单的跨平台屏幕截图模块。 关于 PyScreeze可以拍摄截图,将它们保存到文件中,并在屏幕中定位图像。这是有用的,如果你有一个小的图像&#x…...

wimform 继承窗体卡顿解决

get { const int CS_NOCLOSE 0x200; CreateParams cp base.CreateParams; cp.ClassStyle cp.ClassStyle | CS_NOCLOSE; if (!DesignMode) { cp.ExStyle...

git 替换commit的账户与邮箱信息 GitLab: Committer‘s email does not follow the pattern

最终解决方法来源: https://segmentfault.com/q/1010000006999861 https://www.cnblogs.com/zh7791/p/12986083.html ① git rebase -i HEAD~N N代表前N次的提交记录 ② 出现记录后键入i进入INSERT模式,在需要修改的条目上,将pick改为edit…...

C语言 指针声明和定义 - C语言零基础入门教程

目录 一.指针简介 1.内存2.内存地址3.指针声明 二.指针类型三.声明并初始化一个指针 1.声明指针并直接初始化 – 推荐2.先声明指针在初始化 – 不推荐 四.查看指针地址和指针的值五.NULL 指针 – 空指针六.重点总结七.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >&g…...

[益智题] —— 在 5 5 5 1 间添加运算符号使结果为24

题目结果: 5 * (5 - 1 / 5) 24 题目解析: 巧妙利用分数运算消去分母得到分子。...

JVM运行时数据区(内存模型)

Java程序执行过程: 如上图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件。加载完毕之后,交由JVM执行引擎执行。 在整个程序执行过程中&#xff0…...

7-图像分割

图像分割,其实就是像素级别的分类 目标检测的是object级别的,不包含背景 图像分类-语义分割把图片的里面的像素进行划分 包含背景 目标检测-实例分割,边框轮廓划分起来 不包含背景 全景分割 语义分割和实例分割结合 3 应用 数据集和评价…...

RBCADS 滚动轴承计算机辅助设计系统 7A单列圆锥滚子轴承公制和英制计算机辅助设计软件

[三维滚动轴承CAD系统RBCADS ]是专门用于滚动轴承产品设计的计算机软件。使用该系列软件可以快速设计出绝大多数结构的轴承产品,对于提高企业对市场的快速反应能力,提高轴承产品的设计效率和质量,减少设计错误将发挥积极的作用。目前轴承行业…...

使用idea创建JavaWeb项目

使用idea创建JavaWeb项目 【第一步】 File---New---Project 【第二步】 选择Java Enterprise版本,然后配置tomcat 注意:这里关联的tomcat home指的是tomcat的解压目录(bin目录的上一级目录); 【第三步】 选择使用模板…...

RabbitMQ快速初始化安装图文详细步骤

RabbitMQ 是一个流行的开源消息队列系统。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 小九今天为大家带来RabbitMQ的快速初始化安装图文详细步骤~希望能够帮到大家! 初始化安装 常规的安装,需要经过前期下…...

Filecoin减产即将来临IPFS黄金时间你抓住了么?

按照Filecoin官方之前发布的信息,Filecoin首次产量下降时间段是2021年4月十五号,包括SAFT,基金会,团队和生态的释放,4月十五号SAFT半年期所有线性释放结束,单天生产降低43.2%,也就是过后流动到市场的Filecoin将每日降低…...

druid-0.21.1基础功能演示

首页 搭建成功之后,首页如下图所示 Druid支持多种数据导入方式: UI界面,根据步骤和提示,一步步执行即可UI界面,提交json格式的task文件本地curl命令提交json格式的task文件Druid家目录下,执行自带的post…...

常见各类算法

冒泡: 1、依次比较相邻的元素,如果第一个比第二个大,则交换位置; 2、从第一个交换到最后一个时,最后的元素一定是最大的; 3、然后对所有的元素都执行此操作O(n^2)快排: 1、选择一个基准&#…...

dbc2000 注册机|dbc2000 注册码注册机下载

点击下载来源:dbc2000 注册机 dbc2000 注册机是同名源程序软件的注册机软件,该源程序软件是一款应用于数据库搭建以及数据写入的数据库架设工具,它拥有强大的数据写入功能,在作为应用程序使用时,它不仅可以充当数据属性…...

秋招面经第八弹:网易二面-数据开发工程师

秋招第八弹:网易二面-数据开发工程师 写在最前:秋招以来一直在冲,因为事情比较多,对于笔试面试一直没有复盘,现在靠仅存的记忆把面试的一些问题记录下来,尽可能记录出能回忆到的问题,但可能记的…...

安卓课程格子APP

https://download.csdn.net/download/weixin_57836618/73810452 功能演示: 查看所有课程 点击主页面空白处即可添加课程 添加课程之后查看课程 查看双周课程 查看单周课程 6.查看课程详情...

强化学习——格子世界

强化学习——格子世界 项目源码地址:https://gitee.com/infiniteStars/machine-learning-experiment 1. 实验内容 2. 实验代码 import numpy as np import matplotlib.pyplot as plt from matplotlib.table import Table from xml.dom.minidom import Document #手…...

华为机试 - 跳格子游戏

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 地上共有N个格子,你需要跳完地上所有的格子,但是格子间是有强依赖关系的,跳完前一个格子后,后续的格子才会被开启,格子间的依赖关系由多组st…...

php 爬课程表信息,Ruby爬取教务系统生成课程表

我为什么要虐自己最近觉得课程格子广告越来越多,乱七八糟的东西越来越多,完全失去了一开始的存在价值,并且没有电脑端app,想查看课程必须拿出手机,而我使用电脑频率要比手机高,所以才有了折腾的动力。于是我…...

android 课程表 ui,UICollectionViewLayout实现课程表布局

因为项目中有课程表的相关模块,第一时间想到用UICollectionView。然而后期的需求越来越复杂,每个格子需要展示的内容越来越多,所以不得不寻找合适的解决方案。最后发现自定义UICollectionViewLayout可以实现我的需求。先放效果图:…...

Android自定义View课程表,Android 自定义View课程表表格

自己闲下来时间写的一个课表控件使用的自定义LinearLayout 里面View都是用代码实现的 最终效果如下图 写的可能有问题希望多多指点创建一个自定义LinearLayout 控件用来装载课程的信息和课程的周数 和节数大概的布局三这样的根据上面的看来觉得总体布局我分了两个 上面的星期是…...

java课程设计设计_java课程设计

1. 团队课程设计博客链接https://www.cnblogs.com/choco1ate/p/12172223.html2.本组课题及本人任务本组课题:泡泡堂(炸弹人)游戏本人任务:Box类(游戏地图中的每个方格)Bomb类(游戏过程中的)游戏玩家输赢信息的文件储存3.需求分析Box类:该类为…...

《课程格子》的一个笔试题目

题目如下,感觉很适合喜欢琢磨的程序员,也是考验你编码风格的时候。 Lets make a tower defense game(塔防游戏):1. You have 1 tower, with H health and D dps(damage per second).2. There are n attackers, each with h_i health and d_i …...

Android仿照超级课程表 or 课程格子 一键提取课表功能(方正系统)

参考文章http://blog.csdn.net/sbsujjbcy ,本文仿照‘ 安卓弟 提供的android 项目实战——打造超级课程表一键提取课表功能文章,对他的代码进行了修改和补充,为什么要修改呢?原因是安卓弟的那个源码版本过于老旧,很多方法已经过…...

餐厅食材采购信息管理系统的设计与实现

摘 要 网络的广泛应用给生活带来了十分的便利。所以把餐厅食材采购信息管理与现在网络相结合,利用JSP技术建设餐厅食材采购信息管理系统,实现餐厅食材采购的信息化。则对于进一步提高餐厅食材采购信息管理发展,丰富餐厅食材采购信息管理经验…...

python — 项目命名规范

python — 项目命名规范 类型公有/外部成员私有/内部成员项目(project)My_project模块(module)my_naming_convention_my_naming_convention包(package)my_naming_convention类(class&#xff0…...

Python中的命名规则

一、Python项目组成 1、顶层的包(类似文件夹)。 2、各个模块(Python file)。 3、类(class 定义类)。 4、变量和方法(函数)。其中,方法中也可以定义变量(方法中…...

python基础-命名规则

一、变量 由字母、数字、下划线组成,不能以数字开头,下划线开头尽量不用不能使用python的保留字严格区分大小写可用中文命名,但是不建议使用尽量取有意义的名字 user_name 张三 user_age 25 print (用户名为:,user_name) prin…...

Python命名规则

Python命名规则 一、命名规则 只能使用字母、数字、下划线不能以数字开头不能使用关键字严格区分大小写建议使用英文,做到见名知意 能以下划线(_)开头 二、命名规范 1. 驼峰命名法 小驼峰:第一个单词首字母小写,第…...

python-名字按拼音排序-(用pypinyin)

在python中,用pypinyin实现对名字的排序(按从a-z的顺序排序) 利用python中的pypinyin,具有非常强大的功能: from pypinyin import pinyin import redef print_hi(name):# Use a breakpoint in the code line below to…...

js按拼音排序算法

let arr [大王, 李逵,王语嫣,小红, 啊明,阿大,碧莲];let sortArray arr.sort(function (str1, str2) { return str1.localeCompare(str2, zh); });console.log(sortArray);转载于:https://www.cnblogs.com/webwangjie/p/10489348.html...

JavaScript 实现汉字按拼音首字母分组拼序

单纯只需要对中文汉字进行排序,可以使用 String.prototype.localeCompare()函数 var array [武汉, 北京, 上海, 天津]; array.sort(function compareFunction(param1, param2) {return param1.localeCompare(param2);} ); array // ["北京", "上海…...

python 中文排序(按拼音首字母)

pypinyin 排序 仅按拼音首字母 排序 安装pypinyin pip3 install pypinyin 代码from pypinyin import lazy_pinyinchars [鑫,鹭,榕,柘,珈,骅,孚,迦,瀚,濮,浔,沱,泸,恺,怡,岷,萃,兖] chars.sort(keylambda char: lazy_pinyin(char)[0][0]) print([lazy_pinyin(char) for char i…...