Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вычислить запросы, нагружающие мускул 
:(
    Опции темы
-=Ustas=-
Дата 2.2.2009, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 4
Всего: 69



День добрый!

Ребята, подскажите, что можно сделать. Дело в том, что на серваке крутиться четыре базы, почти одинаковые (клоны проектов), в каждой (в каталоге) по 200-500 тыс. записей.

Поставил логирование медленных запросов в my.cnf:
Код

log-slow-queries=/tmp/mysql-slow-queries.log
long_query_time=3


Вот например первый запрос, который в логе:
Код

SELECT
    c.`id`,
    c.`title`,
    c.`pid`,
    c.`name`,
    c.`active`,
    c.`sort`,
    c.`modified`,
    (SELECT
        COUNT(*)
    FROM
        `shop_product_item`
    WHERE
        `pid` = c.`id`) AS `products`
FROM
    `shop_category` AS `c`
WHERE
    `pid` = 0
AND
    `active` = 'Y'
ORDER BY
    `sort`
DESC;

Где в shop_category самый мизер - 272 категорий всего, в shop_product_item около 200 тыс. записей, индексы проставлены, EXPLAIN показывает что на табличке shop_product_item они используются. В логе пишет, что выполнение 14 сек. Захожу в базу, выпоняю этот запрос - 272 rows in set (0.05 sec).
Так вот вопрос, как можно точно доверится этому логированию? Потому как такая ситуация практически с каждым запросом из лога...
В сутки идет примерно около 40 тыс. запросов на базу. 
В пики top показывает мускула до 180% нагрузки на проц.
Железо - 2 ГГц, ОЗУ - 2 Гб, виртуальный сервак. Я вот думаю, может быть нажно менять уже такой сервак? 
Или все таки как-то можно вычислить узкие места в мускуле и оптимизировать их?

Заранее благодарен smile


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
skyboy
Дата 2.2.2009, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Цитата(-=Ustas=- @  2.2.2009,  13:06 Найти цитируемый пост)
В логе пишет, что выполнение 14 сек. Захожу в базу, выпоняю этот запрос - 272 rows in set (0.05 sec).

блокировки, может, где-то используются?
PM MAIL   Вверх
-=Ustas=-
Дата 2.2.2009, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 4
Всего: 69



Цитата(skyboy @  2.2.2009,  15:54 Найти цитируемый пост)
блокировки, может, где-то используются

Всмысле? В самом приложении? Нигде в SQL-запросах блокировок нет.

Добавлено через 1 минуту и 30 секунд
Я так подозреваю, если не ссылаться на немощьность железа, есть еще какое-то узкое место в одном из каких-либо запросов. Вот только его поймать нужно )


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Бонифаций
Дата 3.2.2009, 05:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: 20
Всего: 40



в том смысле что если например крутится длинный запрос который обновляет (скажем) shop_product_item, то запрос на чтение рискует быть залокированным пока обновление не завершится..

Завист от 1) типа таблицы. 2) типа транзакций.  Если у вас к примеру innodb и repeatable read , то блокировки такого типа очень даже возможны.3) ну и конечно от workload


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
solenko
Дата 3.2.2009, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 4
Всего: 67



-=Ustas=-, а explain этого  запроса? Вложенный запрос сколько выполняется? (время его выполнения ведб прийдется на 200 умножить).

Бонифаций, насколько я знаю, блокированные запросы в slow_query не попадают, т.к. расчитывается фактические время выполнения запроса без учета ожидания.


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
-=Ustas=-
Дата 5.2.2009, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 4
Всего: 69



Бонифаций, таблицы MyISAM, обновление там происходит только одно - это инкрементация счетчика по примари кею в уловии.
solenko, вот EXPLAIN:

Код

+----+--------------------+-------------------+------+---------------+------+---------+------------------+------+-----------------------------+
| id | select_type        | table             | type | possible_keys | key  | key_len | ref              | rows | Extra                       |
+----+--------------------+-------------------+------+---------------+------+---------+------------------+------+-----------------------------+
|  1 | PRIMARY            | c                 | ALL  | pid           | NULL | NULL    | NULL             |  204 | Using where; Using filesort | 
|  2 | DEPENDENT SUBQUERY | shop_product_item | ref  | pid,pin       | pid  | 4       | dip_shop_db.c.id |  113 | Using index                 | 
+----+--------------------+-------------------+------+---------------+------+---------+------------------+------+-----------------------------+



--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.