当我显示进程列表时;
它在其中一行中显示状态Killed
并查询NULL
。
我们是否应该使用 Kill QUERY_ID
终止此 NULL
查询?
这会对数据库产生影响吗?
最佳答案
当您运行show processlist
时,您将得到如下内容
mysql> show processlist \G
*************************** 1. row ***************************
Id: 102524
User: someuser
Host: localhost
db: db_name
Command: Query
Time: 0
State: NULL
Info: show processlist
*************************** 2. row ***************************
Id: 102532
User: someuser
Host: host ip
db: db_name
Command: Query
Time: 0
State: Sending data
Info: select .....,
2 rows in set (0.00 sec)
这里会列出当前正在执行的查询,如果你想终止其中一个,你需要使用 ID
例如,如果我需要终止查询且其 ID 为 102532
,则可以按如下方式完成:
kill 102532
现在会产生什么后果,假设您正在运行一个正在使用某些查询的报告,并且它正在执行或发送数据,如果您在中间终止,那么考虑到查询返回一些数据,报告数据将没有适当的值.
在大多数情况下,选择比插入、删除或更新花费时间,除非是批量删除、更新或插入。
就选择对数据库的影响而言,它不会产生影响,对于插入/更新/删除,是的,如果查询仍处于事件状态,您可能不会插入/更新或删除数据。
您可以使用
获取查询的完整信息show full processlist
关于MySQL 查询状态已终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29699639/