SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 05.10.2012 14:28:41

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Как найти full_join запросы?

Приветствую!

Обнаружил что Select_full_join сильно нулю не равна. Вопрос - а как их найти такие запросы, если одних только баз 150, запросов тысячи, сервер очень нагружен. Может как то mysql можно попросить класть такие запросы в лог, аналогично slow log?

Неактивен

 

#2 05.10.2012 17:01:24

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Как найти full_join запросы?

Единственное, что приходит в голову это --log-queries-not-using-indexes и среди них искать запросы с join.

Неактивен

 

#3 07.10.2012 01:01:07

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Как найти full_join запросы?

Видимо так... у меня включен slow query log. Поскольку на сервере много медленных запросов (даже использующих индексы), то получается надо задрать таймаут для slow, чтобы в лог попадали только запросы без индексов?

Ведь  я так понимаю --log-queries-not-using-indexes = file_name написать нельзя, по крайней мере судя по документации?

Неактивен

 

#4 07.10.2012 12:37:17

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Как найти full_join запросы?

Если под "задрать таймаут" подразумевается уменьшить, то правы.

Начиная с MySQL 5.1.21 минимальное время можно задавать в микросекундах (для логирования в файл), до этого минимальное время 1 секунда.

Неактивен

 

#5 08.10.2012 23:42:05

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Как найти full_join запросы?

Нет-нет, наоборот - увеличить. Т.е. чтобы в лог попадали не медленные запросы, а именно те, которые не используют индексы. Потому как на серваке много медленных запросов но с индексами - с ними отдельные разборки smile

Неактивен

 

#6 08.10.2012 23:54:28

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Как найти full_join запросы?

Да, действительно, я о том же думал, но что-то меня тогда переклинило smile

Неактивен

 

#7 02.11.2012 12:26:37

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Как найти full_join запросы?

Вариант работает. Единственное, что в лог попадает огромное количество запросов, которые и не должны использовать индексы (ну например мелкие таблички-справочники) с нулевым временем выполнения. Я так понимаю без каких нибудь патчей перконы нужного лога от mysql не добиться? Т.е. чтобы в лог попадали только запросы без индексов, но при этом медленные?

Кстати, кто нибудь знает бесплатную софтинку под винду, которая наглядно позволяет с логами mysql работать?

Неактивен

 

#8 02.11.2012 12:50:09

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Как найти full_join запросы?

pt-query-digest подойдет: под виндой должна работать, все наглядно, хотя и в текстовом режиме

http://www.percona.com/doc/percona-tool … igest.html

В GUI для этого есть две тулзы, но я их не пробовал:
http://www.mysqlperformanceblog.com/201 … st-tables/

Неактивен

 

#9 02.11.2012 13:10:01

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Как найти full_join запросы?

rgbeast написал:

pt-query-digest подойдет: под виндой должна работать, все наглядно, хотя и в текстовом режиме

Привет )
там только сорцы, rpm и deb пакеты. бинарника под винду не нашел, может искал плохо

Неактивен

 

#10 02.11.2012 13:16:19

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Как найти full_join запросы?

Привет )
Все просто - это скрипт на Перле:
http://www.percona.com/get/pt-query-digest

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson