产线事故:删除创建mysql索引
单表数据量:670W;
删除一个老的索引,新建一个新的索引。
事故原因:
先删除索引,应用访问量大,没有索引自然慢,数据库CPU飚到100%;新索引创建失败。
直接造成交易打烊。
日志:
------[2019-03-26 19:39:48]------
检查Threads_running(运行中的线程数量),它在一定程度上代表了当前数据库的负荷。
[Threads_running : 28 ] 正常。 ------[2019-03-26 19:39:48]------
set lock_wait_timeout=10 ------[2019-03-26 19:39:48]------
开始执行SQL... ------[2019-03-26 19:39:59]------
Lock wait timeout exceeded; try restarting transaction ------[2019-03-26 19:39:59]------
重试执行第1次... ------[2019-03-26 19:39:59]------
检查Threads_running(运行中的线程数量),它在一定程度上代表了当前数据库的负荷。 ------[2019-03-26 19:39:59]------
[Threads_running : 142 ]当前数据库繁忙。暂停5S后将执行第1次重试,请等待... ------[2019-03-26 19:40:04]------
开始重试检查Threads_running。 ------[2019-03-26 19:40:04]------
[Threads_running : 143 ]当前数据库繁忙。暂停5S后将执行第2次重试,请等待... ------[2019-03-26 19:40:09]------
开始重试检查Threads_running。 ------[2019-03-26 19:40:09]------
[Threads_running : 143 ]当前数据库繁忙。暂停5S后将执行第3次重试,请等待... ------[2019-03-26 19:40:14]------
开始重试检查Threads_running。 ------[2019-03-26 19:40:14]------
[Threads_running : 143 ]当前数据库繁忙。暂停5S后将执行第4次重试,请等待... ------[2019-03-26 19:40:19]------
开始重试检查Threads_running。 ------[2019-03-26 19:40:19]------
[Threads_running : 143 ]当前数据库繁忙。暂停5S后将执行第5次重试,请等待... ------[2019-03-26 19:40:24]------
开始重试检查Threads_running。 ------[2019-03-26 19:40:24]------
[Threads_running : 143 ] 当前数据库繁忙!任务取消执行,请稍后数据库空闲后重试!
处理方案:
下线应用,kill掉CPU链接,等CPU降下来手工创建索引。启动应用,正常。
经验教训:
1、加强DDL语句审核
2、先建索引,再删索引,顺序一定要对,尤其产线。
产线事故:删除创建mysql索引的更多相关文章
- 创建mysql索引的方式
创建索引方式: 1.create index 索引名 on 表名 (字段) 2.alter table 表 add index 索引名 (字段) -- 普通索引 alter table 表名 ...
- MySQL索引,如何正确创建MySQL索引?
索引可以提高数据的检索效率,也可以降低数据库的IO成本,并且索引还可以降低数据库的排序成本.排序分组操作主要消耗的就是CPU资源和内存,所以能够在排序分组操作中好好的利用索引将会极大地降低CPU资源的 ...
- mysql索引总结(1)-mysql 索引类型以及创建
mysql索引总结(1)-mysql 索引类型以及创建 mysql索引总结(2)-MySQL聚簇索引和非聚簇索引 mysql索引总结(3)-MySQL聚簇索引和非聚簇索引 mysql索引总结(4)-M ...
- mysql索引总结(4)-MySQL索引失效的几种情况
mysql索引总结(1)-mysql 索引类型以及创建 mysql索引总结(2)-MySQL聚簇索引和非聚簇索引 mysql索引总结(3)-MySQL聚簇索引和非聚簇索引 mysql索引总结(4)-M ...
- mysql索引总结(3)-MySQL聚簇索引和非聚簇索引
mysql索引总结(1)-mysql 索引类型以及创建 mysql索引总结(2)-MySQL聚簇索引和非聚簇索引 mysql索引总结(3)-MySQL聚簇索引和非聚簇索引 mysql索引总结(4)-M ...
- mysql索引总结(2)-MySQL聚簇索引和非聚簇索引
mysql索引总结(1)-mysql 索引类型以及创建 mysql索引总结(2)-MySQL聚簇索引和非聚簇索引 mysql索引总结(3)-MySQL聚簇索引和非聚簇索引 mysql索引总结(4)-M ...
- MySql索引要注意的8个事情
设计好MySql索引可以让你的数据库查询效率大为提高.设计MySql索引的时候,有一些问题需要值得我们注意的: 1,创建MySql索引 对于查询占主要的应用来说,索引显得尤为重要.很多时候性能问题很简 ...
- MySQL索引的创建、删除和查看
MySQL索引的创建.删除和查看 此文转自http://blogold.chinaunix.net/u3/93470/showart_2001536.html 1.索引作用 在索引列上,除了上面提到的 ...
- MySQL索引的创建,查看,删除
在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引. 1.ALTER TABLE ALTER TABLE用来创建普通索引.UN ...
随机推荐
- 中南oj 1215: 稳定排序
1215: 稳定排序 Time Limit: 2 Sec Memory Limit: 128 MB Submit: 111 Solved: 43 [Submit][Status][Web Boar ...
- 六、Spring之DI的Bean的作用域
Spring提供“singleton”和“prototype”两种基本作用域,另外提供“request”.“session”.“global session”三种web作用域:Spring还允许用户定 ...
- Synchronized的原理及自旋锁,偏向锁,轻量级锁,重量级锁的区别(摘抄和理解)
1. 自旋锁的优缺点: 自旋锁 自旋锁原理非常简单,如果持有锁的线程能在很短时间内释放锁资源,那么那些等待竞争锁的线程就不需要做内核态和用户态之间的切换进入阻塞挂起状态,它们只需要等一等(自旋),等持 ...
- 数据库字段值为null利用setInc方法无法直接写入
1.数据库字段值为null利用setInc方法无法直接写入,先判断是否为空,再写入. if($points->add($dataList)){ $user=M('cuser'); $null=$ ...
- 使用mpvue搭建一个初始小程序
1. 初始化一个 mpvue 项目 现代前端开发框架和环境都是需要 Node.js 的,如果没有的话,请先下载 nodejs 并安装. 然后打开命令行工具: # 1. 先检查下 Node.js 是否安 ...
- 十四、css动画基础知识
引用动画的方式: 1.轻量动画: cubic-bezier(0.165, 0.840, 0.440, 1.000);//加上贝塞尔曲线使动画运动起来更加平滑 2..scrollNews,.m-tr ...
- dctcp-2.6.26-rev1.1.0.patch
dctcp-2.6.26-rev1.1.0.patch diff -Naur linux-/include/linux/sysctl.h linux--dctcp-rev1.1.0/include/l ...
- linux shell每天一阅 -- 安装nginx以及apache
当然这个博客原代码是转载大神的... 自动安装Nginx脚本,采用case方式,选择方式,也可以根据实际需求改成自己想要的脚本mynginx.sh #!/bin/sh ###nginx install ...
- easyui学习笔记2—在行内进行表格的增删改操作
第一篇笔记中记录了如何实现表格的增删改,那个是点击之后跳出来一个对话框然后进行的,这里是在表格本身上进行的操作,也很简单,但是这里发现一个版本问题,也可以说是兼容性问题. 1.首先我们看引用的js和c ...
- 关于Hibernate的报错org.hibernate.MappingException: Unknown entity
部分异常,如下 org.hibernate.MappingException: Unknown entity: com.zcd.hibernate.oneToMany.Teamat org.hiber ...