故障案例:phpadmin点击打开一个数据库卡死

原创 2015年11月20日 13:27:11

有用户反馈show processlist列表出现一堆查询,导致CPU直接跑满24核.....


后来查看ip来源于网页端的phpadmin,但是开发人员均反馈没有执行该操作,只是有同事点击打开了这个库,仔细看了下这个出问题的sql的表机构,发现原来它是一个写得超级烂的VIEW

 mysql> show create table t_yqrx_contact_user_redit\G
*************************** 1. row ***************************
                View: t_yqrx_contact_user_redit
         Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`webapp`@`%` SQL SECURITY DEFINER VIEW `t_yqrx_contact_user_redit` AS select `uc`.`id` AS `id`,`uc`.`user_id` AS `user_id`,`uc`.`contact_user_id` AS `contact_user_id`,`u`.`mobilephone` AS `mobilephone`,ifnull(`uc`.`c_comments`,`u`.`mobilephone`) AS `c_comments`,(select cast(ifnull(max(`pl`.`serial_number`),(select min(`t_yqrx_preauth_level`.`serial_number`) from `t_yqrx_preauth_level`)) as decimal(10,0)) from (`t_yqrx_preauth_level` `pl` join `t_yqrx_user_preauth` `uath2`) where ((`uath2`.`user_id` = `uc`.`contact_user_id`) and (`uath2`.`contact_user_id` = `uc`.`user_id`) and (`uath2`.`amount` >= ifnull(`pl`.`level_amount`,0)))) AS `credit_level`,(select ifnull(sum(`uath2`.`amount`),0) from `t_yqrx_user_preauth` `uath2` where ((`uath2`.`user_id` = `uc`.`contact_user_id`) and (`uath2`.`contact_user_id` = `uc`.`user_id`))) AS `credit_level_amount`,ifnull(sum(`uath`.`amount`),0) AS `worth_amount`,count((case when (`uath`.`amount` > 0) then 1 else NULL end)) AS `preauthed_users`,(select ifnull(sum(`up`.`amount`),0) from `t_yqrx_user_preauth` `up` where (`up`.`contact_user_id` = `u`.`id`)) AS `preauth_amount` from ((`t_yqrx_user_contact` `uc` join `t_yqrx_user` `u` on((`uc`.`contact_user_id` = `u`.`id`))) left join `t_yqrx_user_preauth` `uath` on((`u`.`id` = `uath`.`user_id`))) group by `uc`.`id`
character_set_client: utf8
collation_connection: utf8_general_ci
1 row in set (0.00 sec)

但是为什么phpadmin打开db时会有这种查询呢,我复现了一下,点击这个按钮


打开general_log查看它到底做了哪些事


好吧,问题就在这了,phpadmin打开一个db时做了这些莫名其妙的工作,如果只是正常的use database命令,它做的事是这样的


从截图可以看到,use一个db时会查看下该库下所有表的filed list,这也能解释如果一个db下库多达3000以上时,use非常慢



相关文章推荐

电脑花屏,蓝屏,黑屏,卡死,自动重启,开机故障

今天帮一同事排除电脑故障,电脑一天出现过卡死,自动重启,蓝屏,黑屏等多重问题,防不胜防啊!       自己的电脑前几天刚出现了花屏的现象(笔记本,具体表现为:在系统运行过程中突然屏幕变成不规则的线...

Java进程与父子进程的标准输出流关联导致线程卡死的故障

故障现象     Java调度系统创建PHP数据脚本后,并且获取其标准输出流,然后循环读取其标准输出流内容。此时PHP数据脚本执行时间过长,Java调度系统Process.destory()杀掉进程...
  • Pun_C
  • Pun_C
  • 2016年10月15日 23:32
  • 440

(二)数据库故障处理的案例-处理归档不能执行

Starting up ORACLE RDBMS Version: 10.2.0.4.0. System parameters with non-default values:   pro...

故障案例--mysql5.5分区表的一个坑

故障现象 db每隔一段时间就异常重启,查看DB错误日志的错误日志Database was not shut down normally相关的信息,而查看/var/log/message并没有发现什么异...

故障案例--mongodb3.0 mongorestore恢复数据库时hang住

现象 wiretigerd引擎下,mongorestore的进程一直卡在那,查看错误日志几个小时都无更新,进程hang住 诊断步骤 理论上这个db能使用的最大内存为3G,查看mongod进程当前...

故障案例--mongodb副本集write concern为majority的一个坑

故障现象: 一个副本集下四个节点,一个primary,两个Secondary,一个arbiter,其中将一个Secondary关闭后,修改primary节点的密码,这时修改命令会卡住直到超时失败。 u...

处理MySQL复制环境Slave故障的一个案例

处理一则MySQL Slave环境出现ERROR 1201 (HY000): Could not initialize master info structure的案例。 冷备份方式...

phpadmin 操作数据库

  • 2015年11月30日 16:09
  • 8.33MB
  • 下载

网络故障一个经典案例

  • 2014年03月29日 15:23
  • 6KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:故障案例:phpadmin点击打开一个数据库卡死
举报原因:
原因补充:

(最多只允许输入30个字)