产线事故:删除创建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 ...
随机推荐
- flex固定底部栏
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- javascript获取文件后缀名
javascript获取文件后缀名:在需要验证文件格式的时候,首先就要获得文件的格式,下面是一个通过正则表达式获取文件后缀名的一个简单实例. function validate(){ var impo ...
- mongoDB (mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
MongoDB - 简介 官网:https://www.mongodb.com/ MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储 ...
- 《火星救援》NASA惊现lisp
duang-跳出个界面上面一个lisp程序.
- Tesseract-OCR-05-主要API功能介绍
Tesseract-05-主要API功能介绍 tesseract本身代码是由c/c++混编而成的,其中有用的简单的接口函数几乎都是在baseapi.h中 从其处理过程中,不难得出: 它还需要有一个im ...
- 139.00.007 Git学习-Cheat Sheet
@(139 - Environment Settings | 环境配置) Git虽然极其强大,命令繁多,但常用的就那么十来个,掌握好这十几个常用命令,你已经可以得心应手地使用Git了. 友情附赠国外网 ...
- Linux下Apache HTTP Server 2.4.20安装
一.创建software目录 mkdir /softwareer 二.下载apache源码包 wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4 ...
- Codeforces Round #435 (Div. 2)【A、B、C、D】
//在我对着D题发呆的时候,柴神秒掉了D题并说:这个D感觉比C题简单呀!,,我:[哭.jpg](逃 Codeforces Round #435 (Div. 2) codeforces 862 A. M ...
- Django 创建model的一些注意事项
自增主键字段¶ 默认情况下,Django 会给每个模型添加下面这个字段: id = models.AutoField(primary_key=True) 这是一个自增主键字段. 如果你想指定一个自定义 ...
- thinkphp 和 laravel使用sql语句操作db和源码浅析
thinkphp 和 laravel是phper开发中用的比较多的两个框架,无所谓好坏,看个人习惯及喜爱! 前言对于一个PHP应用,可能最多的就是操作数据,以致于初学者有时只把php当做数据库增删查改 ...