mysql常见问题

1、执行sql卡死

  命令来检查和终止线程。

  首先登录mysql,然后使用: show processlist; 查看当前mysql中各个线程状态。

  [sql] view plain copy
 
  1. mysql> show processlist;  
  2. +------+------+----------------------+----------------+---------+-------+-----------+---------------------   
  3. | Id   | User | Host                 | db             | Command | Time  | State     | Info  
  4. +------+------+----------------------+----------------+---------+-------+-----------+---------------------   
  5. | 7028 | root | ucap-devgroup:53396  | platform       | Sleep   | 19553 |           | NULL   
  6. | 8352 | root | ucap-devgroup:54794  | platform       | Sleep   |  4245 |           | NULL  
  7. | 8353 | root | ucap-devgroup:54795  | platform       | Sleep   |     3 |           | NULL  
  8. | 8358 | root | ucap-devgroup:62605  | platform       | query   |  4156 | updating  | update t_shop set  |  

  以上显示出当前正在执行的sql语句列表,找到消耗资源最大的那条语句对应的id.

  然后运行kill命令,命令格式如下:

  [sql] view plain copy
 
  1. kill id;  
  2. - 示例:  
  3. kill 8358  

  杀掉即可。

2、You can't specify target table 'enn_project_info' for update in FROM clause(不能在同一表中查询的数据作为同一表的更新数据)

  错误语句:

   

  出错原因:不能select同一张表的某些值再update这张表

  正确语句:

   

  解决办法:将select出来的结果再用中间表select一下,就规避了改问题

  PS:该问题只存在MySql中

原文地址:https://www.cnblogs.com/lmmblogs/p/7687136.html