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

Summary of common operation skills of MySQL database

This article summarizes common operating techniqu...

How to configure Linux firewall and open ports 80 and 3306

Port 80 is also configured. First enter the firew...

MySQL transaction, isolation level and lock usage example analysis

This article uses examples to describe MySQL tran...

BUG of odd width and height in IE6

As shown in the figure: But when viewed under IE6...

Front-end state management (Part 1)

Table of contents 1. What is front-end state mana...

Ubuntu Basic Tutorial: apt-get Command

Preface The apt-get command is a package manageme...

Linux installation MySQL tutorial (binary distribution)

This tutorial shares the detailed steps of instal...

HTML+CSS to achieve charging water drop fusion special effects code

Table of contents Preface: accomplish: Summarize:...

Detailed explanation of the use of Refs in React's three major attributes

Table of contents Class Component Functional Comp...

Detailed explanation of 10 common HTTP status codes

The HTTP status code is a 3-digit code used to in...

Example of how to build a Mysql cluster with docker

Docker basic instructions: Update Packages yum -y...

A simple example of creating a thin line table in html

Regarding how to create this thin-line table, a s...