事情经过:
原表有两个字段的联合唯一索引unique key,因业务变更这两个字段不再唯一,需要去掉唯一索引。考虑到其中一个字段不仅作为唯一索引,还当作查询索引使用,去掉这个唯一索引,要新加这个字段的普通索引。
于是提了ddl数据库变更,删除唯一索引,新增普通索引。事故因此发生,当删除唯一索引后,还没来得及执行新增普通索引,数据库连接池就被占满了,导致页面所有请求都发生异常!
表中有500W数据,理论删除和新增索引都很快10s内可以完成。问题就出在了删除唯一索引后,系统的MQ处理任务有大量的根据某个字段查询更新的任务在执行,导致没了索引后任务变得相当慢,大量任务堆积占满了数据库连接池,系统崩溃。。。要知道,在没了索引的情况下,500W数据量下根据某个字段查询那是相当的慢。。。还没来得及执行新增普通索引系统l就已经崩溃了。临时解决方法就是停止系统,杀掉数据库查询和更新的事务,把新增普通索引ddl执行后再重启系统应用,系统会恢复正常。至于丢失的数据再想办法补吧。
结论:
这件事,告诉我们,删除数据库索引一定要慎重。即使一定要做,先要明确删除索引后带来的影响性,更换索引一定要遵循先增加后删除的原则,才能避免类似的事故发生。

踩过的坑——MySQL删除索引要慎重相关推荐

  1. mysql删除索引_SQL基础12:Mysql删除索引

    图片发自简书App 学习此文之前,一起先来回顾下Mysql创建索引 简介:在本篇教程中,你将学习如何使用MYSQL DROP INDEX语法删除表中已经存在的索引. 一.MYSQL删除索引的语法 要从 ...

  2. mysql删除索引是否锁表_percona-toolkit在线添加删除mysql索引、字段(不锁表)

    1.安装配置yum install perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-DBI perl-ExtUtils-CBuilder  ...

  3. MySQL——删除索引前判断是否存在索引再删除

    mysql的drop index语句不支持if exists条件,在sql中先删除索引,再创建索引,如果对于新建的数据库,库中没有该索引,就会报错,导致后面的sql不再执行. 因此需要使用存储过程来判 ...

  4. mysql删除索引很慢_mysql建立索引删除索引很慢的解决_MySQL

    bitsCN.com mysql建立索引删除索引很慢的解决 目前情况 建立索引非常慢,需8分钟... 目前环境: ---------------- table行: 30W 版本5.0.45-commu ...

  5. MySQL——删除索引

    1.  使用  ALTER  TABLE  语句删除索引   语法格式:     ALTER  TABLE  table_name   DROP  INDEX  index_name; [例]删除  ...

  6. mysql删除索引语句_MySQL:使用SQL语句删除所有索引

    删除所有索引 可利用ALTER TABLE或DROP INDEX语句来删除索引.这里使用ALTER TABLE,首先查询所有索引,然后拼接成删除语句,复制执行即可 #拼接删除索引的语法 SELECT ...

  7. mysql删除索引 增加索引

    使用ALTER TABLE语句创建索引alter table table_name add index index_name (column_list) ; alter table table_nam ...

  8. MySql 删除索引

    #删除索引 -- (1)使用alter table 删除 -- 语法:alter table 表名 drop index|key 索引名 -- 列如:删除表book11中的索引 alter table ...

  9. 快速从入门到精通!mysql删除索引

    结构化数据.非结构化数据与半结构化数据 文章的开始,聊一下结构化数据.非结构化数据与半结构化数据,因为数据特点的不同,将在技术上直接影响存储引擎的选型. 首先是结构化数据,根据定义结构化数据指的是由二 ...

最新文章

  1. 剑指offer:面试题27. 二叉树的镜像
  2. 使用 Flutter 制作一个简单的笑话生成器应用程序
  3. 【题意分析】1024 Palindromic Number (25 分)_38行代码AC
  4. linux修改ip广播地址,Linux设置查看静态IP之ifconfig命令
  5. C# 实现SQLServer数据库备份示例
  6. DjangoAdmin站点调整列表页展示
  7. 小白必看——一位八年程序员的经验,赶紧看看!!
  8. 【C语言】scanf()输入浮点型数据
  9. oracle 最大值及其_学习笔记:Oracle优化 SQL查询最大值 最小值时的优化方法案例...
  10. linux c 获取文件数量
  11. 如何在div中垂直对齐图像
  12. Unity3D之UGUI基础5:Toggle复选框
  13. html怎么设置字体的背景颜色,html怎样设置字体的背景颜色?
  14. Dreamwear如何创建javascript_内存管理+如何处理4种常见的内存泄漏
  15. ubuntu16.04下ORB_SLAM2的配置
  16. 基于单片机的电子时钟
  17. 【论文翻译】联合学习对齐和翻译的神经机器翻译
  18. 贪心算法——1225:金银岛
  19. 全力以赴地完成书稿中
  20. # 计算机科学导论习题见解(机械工业)

热门文章

  1. github pages: 如何使用 github 发布网站
  2. JS调整视频倍速和视频跳转
  3. 深度神经网络调参数技巧,神经网络参数调节方法
  4. 爱聊语音聊天室为什么用不了摄像头?
  5. 详解软件测试中白盒测试基本概念及四种白盒测试方法以及六种逻辑覆盖法(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖)
  6. 一、ADS实现阻抗匹配的三种案例(一)
  7. 关于Android滑动scroll,弹性滑动以及VelocityTracker
  8. iframe标签中写html代码,Iframe嵌套HTML网页的用法?
  9. filebeat 收集json格式_Filebeat 采集日志实践经验记录
  10. 分享148个PHP源码,总有一款适合您