场景:在给一张有几万条记录的表添加索引时,进度非常慢,导致其它查询无法进行 处理方式:使用Navicat的命令行模式,执行以下命令: show processlist; 这时会看到有哪些线程正在执行,也可以查看锁表的线程。你会发现alter table * add key ...
结论:添加索引时,如果有对该表的慢查询,会导致索引添加延时等待 添加索引语句:alter table tb name add index idx xx col name 执行添加索引的SQL: 通过show processlist 发现有锁表等待的线程: root localhost erp Query Waiting for table metadata lock ALTER TABLE er ...
2017-11-01 10:15 0 9079 推荐指数:
场景:在给一张有几万条记录的表添加索引时,进度非常慢,导致其它查询无法进行 处理方式:使用Navicat的命令行模式,执行以下命令: show processlist; 这时会看到有哪些线程正在执行,也可以查看锁表的线程。你会发现alter table * add key ...
原因: 新建表时没有加索引,导入数据完成后加,数据量太大导致表锁死 解决 show processlist; 这时会看到有哪些线程正在执行,也可以查看锁表的线程 kill 线程ID ...
MySQL5.6在线DDL不锁表(在线添加字段) 解答你也看一下MySQL5.6在线DDL不锁表,现在我有一张1亿的表,需要增加一个字段,假如我让你去增加这个字段,你应该注意什么,具体怎么操作? 操作如下:1.注意磁盘空间(临时表目录 参数 tmpdir ,因为需要创建临时表使用 ...
背景 最近一个后台功能列表,业务人员反馈查询和导出速度非常慢。 通过定位发现列表查询和数据导出都是使用的同样的一个连表查询SQL。 这个功能刚上线不久,起初查询和导出速度都是蛮快的,把这个SQL放到测试环境也是挺快的。 对比了一下测试环境和生产环境相关表结构都是一样的,之后我们把目光放在 ...
前端时间跟一个DB相关的项目,alanc反馈有一个查询,使用索引比不使用索引慢很多倍,有点毁三观。所以跟进了一下,用explain,看了看2个查询不同的结果。 不用索引的查询的时候结果如下,实际查询中速度比较块。 mysql> explain select * from ...
的数据库故障,影响线上业务。经过排查后,确定原因是SQL在执行时,MySQL优化器选择了错误的索引(不应该 ...
mysql5.6索引长度,最大676字节 因此建立联合索引时,需要注意长度,如下表能建立成功,如果去掉长度限制变成: unique key `name` (`name`,`wu`), 那么就会创建表失败。 ...
...