Mysql uses the kill command to solve the deadlock problem (kill a certain SQL statement being executed)

Mysql uses the kill command to solve the deadlock problem (kill a certain SQL statement being executed)

When using MySQL to run certain statements, a deadlock may occur due to the large amount of data, and no response will be given. At this time, you need to kill a query statement that is consuming resources. The syntax format of the KILL command is as follows:

KILL [CONNECTION | QUERY] thread_id

Each connection to mysqld runs in a separate thread. You can use the SHOW PROCESSLIST statement to see which threads are running and the KILL thread_id statement to kill a thread.

KILL allows optional CONNECTION or QUERY modifiers: KILL CONNECTION is the same as KILL with no modifiers: it terminates the connection associated with the given thread_id. KILL QUERY terminates the statement currently executing on the connection, but leaves the connection intact.

If you have PROCESS permission, you can view all threads. If you have super administrator privileges, you can terminate all threads and statements. Otherwise, you can view and terminate only your own threads and statements. You can also use the mysqladmin processlist and mysqladmin kill commands to examine and kill threads.

First log in to MySQL, and then use: show processlist; to view the status of each thread in the current MySQL.

mysql> show processlist; 
+------+------+----------------------+----------------+---------+-------+-----------+--------------------  
| Id | User | Host | db | Command | Time | State | Info 
+------+------+----------------------+----------------+---------+-------+-----------+--------------------  
| 7028 | root | ucap-devgroup:53396 | platform | Sleep | 19553 | | NULL  
| 8352 | root | ucap-devgroup:54794 | platform | Sleep | 4245 | | NULL 
| 8353 | root | ucap-devgroup:54795 | platform | Sleep | 3 | | NULL 
| 8358 | root | ucap-devgroup:62605 | platform | query | 4156 | updating | update t_shop set |

The above shows the list of SQL statements currently being executed, and finds the id corresponding to the statement that consumes the most resources.

Then run the kill command. The command format is as follows:

kill id; 
- Example: 
kill 8358

Just kill it.

You may also be interested in:
  • mysql show processlist displays the mysql query process
  • Reasons why MySQL kill cannot kill threads
  • How to view and kill processes in MYSQL

<<:  How to use glog log library in Linux environment

>>:  Which loop is the fastest in JavaScript?

Recommend

How to reduce the root directory of XFS partition format in Linux

Table of contents Preface System environment Curr...

Implementation of HTML sliding floating ball menu effect

CSS Styles html,body{ width: 100%; height: 100%; ...

Disable autocomplete in html so it doesn't show history

The input box always displays the input history wh...

Introduction to the properties of B-Tree

B-tree is a common data structure. Along with him...

The meaning of status code in HTTP protocol

A status code that indicates a provisional respon...

Problems installing TensorRT in docker container

Uninstall the installed version on Ubuntu: sudo a...

How to create Baidu dead link file

There are two types of dead link formats defined b...

Detailed use of Echarts in vue2 vue3

Table of contents 1. Installation 2. Use Echarts ...

Code analysis of synchronous and asynchronous setState issues in React

React originated as an internal project at Facebo...

CSS Reset style reset implementation example

Introduction: All browsers come with default styl...

Docker's flexible implementation of building a PHP environment

Use Docker to build a flexible online PHP environ...

Example of how to set WordPress pseudo-static in Nginx

Quoting Baidu's explanation of pseudo-static:...

How to use the VS2022 remote debugging tool

Sometimes you need to debug remotely in a server ...