2010-04-26 4 views
3

Я создаю и тестирую запрос соединения mysql, но каждый раз до сих пор он заставляет таблицы базы данных блокироваться и зависает сайт. Затем я должен вызвать хост, и они убивают заблокированные запросы. Это что-то я могу сделать из phpmyadmin, чтобы не беспокоить их, пока я настраиваю скрипт на работу? Спасибо за любой ответ.Как убить заблокированные запросы mysql

ответ

13

Это можно сделать на первой странице phpMyAdmin. Найдите ссылку «Процессы».

Вы также можете выполнить команду SHOW PROCESSLIST (или SHOW FULL PROCESSLIST). Это покажет вам все запросы, которые вы можете манипулировать (то есть ваши собственные). Наряду с каждым запросом будет идентификатор. Вы можете отправить команду KILL любому из этих идентификаторов, чтобы убить запрос.

Кроме того, вы должны рассмотреть возможность тестирования вашего запроса с помощью EXPLAIN.

+0

Спасибо, что сделают трюк. – jcure

0

Я не знаю о phpMyAdmin, но бесплатный пакет «mysql tools» содержит приложение под названием MySql Adminstrator, который позволяет вам делать именно это. Он показывает, что вы выполняете запросы и предоставляет кнопку kill thread (это, на мой взгляд, на вкладке работоспособности сервера).

Mysql GUI Tools/Mysql Workbench намного превосходит phpMyAdmin в любом случае. Если вы используете локальную базу данных или имеете доступ к ssh, нет никакой причины использовать phpMyAdmin.

+0

Большой совет спасибо. Я установлю это локально и попробую сначала проверить его. – jcure

0

Я не помню способ сделать это с phpmyadmin. Вы можете попробовать проверить свой запрос в локальной тестовой копии базы данных, а не жить, чтобы получить более высокую пропускную способность, пока она больше не блокируется.

0

Самый простой способ сделать это через mytop, нажать «k» и ввести идентификатор потока, который вы хотите убить.

Id  User   Host/IP   DB  Time Cmd State Query                             
    --  ----   -------   --  ---- --- ----- ----------                           
Смежные вопросы