MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLクエリの実行を停止するにはどうすればよいですか?


MySQLの実行中のクエリを停止する前に、まずshowコマンドを使用して実行中のプロセスの数を確認する必要があります。

そのためのクエリは次のように与えられます-

mysql> show processlist;

上記のクエリを実行した後、いくつかのIDを含む出力を取得します。これは次のように与えられます-

+----+-----------------+-----------------+----------+---------+-------+------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-----------------+-----------------+----------+---------+-------+------------------------+------------------+
| 4 | event_scheduler | localhost | NULL | Daemon | 71034 | Waiting on empty queue |
NULL |
| 8 | Manish | localhost:53496 | business | Query | 0 | starting |show processlist|
+----+-----------------+-----------------+----------+---------+-------+------------------------+------------------+
2 rows in set (0.00 sec)

上記の出力からわかるように、現在使用されているデータベースは「ビジネス」です。そのIDは8です。クエリを停止するには、プロセスリストにある指定されたIDでコマンド呼び出しを使用できます。その構文は次のとおりです-

call mysql.rds_kill(valueOfGivenIdInProcesslist);

これで、上記の構文がクエリに適用され、valueOfGivenIdInProcesslistが8になります。これを以下に示します-

mysql> CALL mysql.rds_kill(8);

上記のクエリを実行すると、次の出力が得られます-

ERROR 2013 (HY000): Lost connection to MySQL server during query

これは、上記のクエリの実行が停止したときに発生します。 useコマンドは、停止したかどうかを確認するために使用されます。その構文は次のとおりです-

use yourDatabaseName;

上記の構文は、システムのmydatabase名「business」に適用されます。クエリは次のとおりです-

mysql> use business;

上記のクエリを実行すると、次の出力が得られます-

No connection. Trying to reconnect...
Connection id: 10
Current database: *** NONE ***



Database changed
mysql>

したがって、MySQLで「再接続しようとしています…」というメッセージが表示されるため、クエリが停止したことは明らかです。また、現在のデータベースが「なし」であることも示しています。しばらくすると、データベースとの接続が再開されます。


  1. クエリがMySQLでnull値を返す場合、どうすれば0を設定できますか?

    このために、IFNULL()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> Value int    -> ); Query OK, 0 rows affected (0.71 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into

  2. MySQLクエリでORステートメントが多すぎるのを避けるにはどうすればよいですか?

    MySQL IN()を使用して、ORステートメントが多すぎないようにします。まずテーブルを作成しましょう- mysql> create table DemoTable (    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    Name varchar(40) ); Query OK, 0 rows affected (0.89 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable(Name) values('