公众号里的网站怎么做的,购物网站php模板,制作自己的网站需要什么,网页制作平台哪个最好MySQL Online DDL导致全局锁表案例分析我这边遇到了什么问题?线上给某个表执行新增索引SQL, 然后整个数据CPU打到100%, 连接数暴增到极限, 最后导致所有访问数据库的应用都奔溃.SQL如下:ALTER TABLE bookADD INDEX idx_sub_title (sub_title ASC);能看到什么?10063293, root,…MySQL Online DDL导致全局锁表案例分析我这边遇到了什么问题?线上给某个表执行新增索引SQL, 然后整个数据CPU打到100%, 连接数暴增到极限, 最后导致所有访问数据库的应用都奔溃.SQL如下:ALTER TABLE bookADD INDEX idx_sub_title (sub_title ASC);能看到什么?10063293, root, 10.0.0.1:35252, novel, Query, 50, Waiting for table metadata lock,ALTER TABLE lemon_novel.book \nADD INDEX idx_sub_title (sub_title ASC)10094494, root, 172.16.2.112:42808, novel, Query, 31, Waiting for table metadata lock, SELECT \nbook_trend.book_id AS book_id,很奇怪, 这两边都在等Waiting for table metadata lock反手查一下Waiting for table metadata lock是什么初步的一些结论看下来下面的一些结论:MySQL 5.6以后的版本支持在线DDL新增index/删除index之类的可以直接InPlace操作,不需要rebuild整张表理论上效果是很快的详细资料见Online DDL OperationsDDL add index 操作会lock table metadata此操作是导致我们服务不可用的原因有怀疑过lock tabel matadata和MySQL autocommit有关但是实践下来两者看起来没有关联。后来在阿里云上面还看到过他们特定写过类似的答疑.阿里云建议主要是这样操作.这里需要找到的是一直在占用该表的会话而不是正在等待MDL锁解除的会话注意区分。可以根据State列的状态和Info列的命令内容来进行分析判断。您也可以用如下命令查询长时间未完成的事务如果导致阻塞的语句的用户与当前用户不同请使用导致阻塞的语句的用户登录来终止会话。select concat(kill ,i.trx_mysql_thread_id,;) from information_schema.innodb_trx i,(selectid, timefrominformation_schema.processlistwheretime (selectmax(time)frominformation_schema.processlistwherestate Waiting for table metadata lockand substring(info, 1, 5) in (alter , optim, repai, lock , drop , creat))) pwhere timestampdiff(second, i.trx_started, now()) p.timeand i.trx_mysql_thread_id not in (connection_id(),p.id);然而在我的场景, 上面的SQL并没有任何的进程输出.陷入僵局的...不过上面给了一些思路, 现在我们主要是因为有东西占用着 table metadata lock, 导致当前所有的东西都没有执行.showfull processlist;看一眼没什么卵用, 处理那两个奇怪的wait lock, 其他的都挺正常的.那么, 看下现在谁占用着锁? 怎么看呢?select*from information_schema.innodb_trx;神奇了, 真有两个东西在占用锁.那kill 了他们看看.额, 解决了.最终结论某个奇怪的程序开了查询或者奇怪的操作,lock了 table metadata,之后连接一直都没有被释放, 导致以上各种问题.现在的问题来了, 究竟是哪个程序或者哪个代码导致的呢?抱歉, 我现在也还不知道...理论上可以查,但是上次去查的时候发现数据库显示的host对应机器的端口早就没东西了,死无对证ing.最后建议online DDL前,最好确认一下当前数据库有没有类似table metadata lock存在最好的方案还是主从切换来搞全文完.