Last active
June 29, 2023 17:31
-
-
Save heathdutton/aa5de938e632eedc7651d8a94d52841f to your computer and use it in GitHub Desktop.
Assassinates matching queries.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DELIMITER ;; | |
DROP PROCEDURE IF EXISTS `assasinate`;; | |
CREATE PROCEDURE `assasinate`(queryportion VARCHAR(255)) | |
BEGIN | |
DECLARE sql_string MEDIUMTEXT; | |
DECLARE count MEDIUMINT; | |
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; | |
SET FOREIGN_KEY_CHECKS = 0; | |
SET @count = 0; | |
SET @sql_string := 'tmp'; | |
WHILE @sql_string != "" DO | |
SET @sql_string := ( | |
SELECT CONCAT('KILL ', ID, ';') -- assasinate | |
FROM INFORMATION_SCHEMA.PROCESSLIST | |
WHERE INFO LIKE CONCAT("%", queryportion, "%") COLLATE utf8_unicode_ci | |
AND INFO NOT LIKE "%assasinate%" COLLATE utf8_unicode_ci | |
ORDER BY TIME DESC | |
LIMIT 1 | |
); | |
IF @sql_string != "" THEN | |
PREPARE st FROM @sql_string; | |
EXECUTE st; | |
SET @count = @count + 1; | |
END IF; | |
END WHILE; | |
SELECT CONCAT("Killed ", @count, " matching queries.") as "result"; | |
END;; | |
DELIMITER ; | |
CALL assasinate("part_of_query_you_wish_to_kill"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment