Здесь курят мануал.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 26 Май, 2012, 02:33:12

Страниц: [1]
Печать
Автор Тема: Помогите с оптимизацией запроса  (Прочитано 1113 раз)
0 Пользователей и 1 Гость смотрят эту тему.
md5    ↓ 
24 Ноябрь, 2009, 03:56:11
НЕ ХУЕТА! ХУЕТА!

выезд, апартаменты, массаж, стриптиз, подружки, дорого
Группа: в ухо

Карма: не нужна
Сообщений: 10495
Сила слова: 1.19

Запрос:
SQL
SELECT T.*, U.`avatar`, U.`login`, B.`name` AS `blog_name`, B.`sname` AS `blog_sname`, F.`id` AS `favourite`, R.`id` AS `rated`, BM.`id` AS `moderator`, PV.`answer_id`
FROM `live-cs_topics`AS T
 
JOIN `live-cs_blogs` AS B
ON B.`id`=T.`parent_id`
 
LEFT JOIN `live-cs_users` AS U
ON T.`author`=U.`id`
 
LEFT JOIN `live-cs_blogs-moders` AS BM
ON BM.`blog_id`=B.`id` AND BM.`user_id`=1
 
LEFT JOIN `live-cs_topics-fav` AS F
ON F.`topic_id`=T.`id` AND F.`user_id`=1
 
LEFT JOIN `live-cs_topics-rating` AS R
ON R.`topic_id`=T.`id` AND R.`user_id`=1
 
LEFT JOIN `live-cs_poll-votes` AS PV
ON PV.`poll_id`=T.`id` AND PV.`user_id`=1
 
WHERE T.`deleted`='0'
ORDER BY T.`date` DESC
LIMIT 0, 10
он отрабатывает за 1-1.5 секунды, там 10 000 записей
такой же запрос, но с доп. условиями, лимит по дате — отрабатывает за 0.003
 
explain:
Text
+----+-------------+-------+--------+-------------------------------+-------------+---------+---------------------------+------+---------------------------------+
| id | select_type | table | type   | possible_keys                 | key         | key_len | ref                       | rows | Extra                           |
+----+-------------+-------+--------+-------------------------------+-------------+---------+---------------------------+------+---------------------------------+
|  1 | SIMPLE      | B     | ALL    | PRIMARY                       | NULL        | NULL    | NULL                      |   21 | Using temporary; Using filesort |
|  1 | SIMPLE      | T     | ref    | parent_id,deleted,parent_id_2 | parent_id_2 | 4       | live-cs.B.id              |  264 | Using where                     |
|  1 | SIMPLE      | U     | eq_ref | PRIMARY                       | PRIMARY     | 4       | live-cs.T.author          |    1 |                                 |
|  1 | SIMPLE      | BM    | eq_ref | blog_id                       | blog_id     | 8       | live-cs.T.parent_id,const |    1 | Using index                     |
|  1 | SIMPLE      | F     | eq_ref | user_id                       | user_id     | 8       | const,live-cs.T.id        |    1 | Using index                     |
|  1 | SIMPLE      | R     | eq_ref | user_id                       | user_id     | 8       | const,live-cs.T.id        |    1 | Using index                     |
|  1 | SIMPLE      | PV    | eq_ref | poll_id                       | poll_id     | 8       | live-cs.T.id,const        |    1 |                                 |
+----+-------------+-------+--------+-------------------------------+-------------+---------+---------------------------+------+---------------------------------+
 

сама страница для наглядности — http://live-cs.ru/topic/
т.е. выводятся все топики, с постраничной разбивкой
сам COUNT считает за 0.004, видимо тормоза в джоинах, т.к. тут юзается единственный индекс при выборке — deleted и date при сортировке
 
но все джоины идут по id с primary индексами
 
как отсечь тормоза?
Спустя 4 минуты 1 секунду добавил
и как же у меня все-таки красиво оформлены запросы :) ну просто загляденье :)
Записан

8: Undefined variable: str
Файл: /home/pyha/pyha.ru/forum/bbcode/Xbb/Tags/Man.php
Строка: 18
adw0rd: мудень блять, я уже фиксить стал эту фигню :)
md5: вуахахахаха
adw0rd    ↓ 
24 Ноябрь, 2009, 04:07:34 , спустя 11 минут 23 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17634
Сила слова: 1.67

А чего для B не юзается индекс, скажи мускулю чтобы явно юзал примари (id)
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
phpdude    ↓ 
24 Ноябрь, 2009, 04:08:29 , спустя 55 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: д-о-х-у-я!
Сила слова: 1.66

ты привел explain для лимитированного?
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
md5    ↓ 
24 Ноябрь, 2009, 04:10:43 , спустя 2 минуты 14 секунд
НЕ ХУЕТА! ХУЕТА!

выезд, апартаменты, массаж, стриптиз, подружки, дорого
Группа: в ухо

Карма: не нужна
Сообщений: 10495
Сила слова: 1.19


А чего для B не юзается индекс, скажи мускулю чтобы явно юзал примари (id)
каким образом?
Спустя 13 секунд добавил

ты привел explain для лимитированного?
да, для того, что тут изобразил
Записан

8: Undefined variable: str
Файл: /home/pyha/pyha.ru/forum/bbcode/Xbb/Tags/Man.php
Строка: 18
adw0rd: мудень блять, я уже фиксить стал эту фигню :)
md5: вуахахахаха
phpdude    ↓ 
24 Ноябрь, 2009, 04:17:01 , спустя 6 минут 18 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: 20793
Сила слова: 1.66

md5, без лимита покажи эксплейн
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
md5    ↓ 
24 Ноябрь, 2009, 04:21:32 , спустя 4 минуты 31 секунду
НЕ ХУЕТА! ХУЕТА!

выезд, апартаменты, массаж, стриптиз, подружки, дорого
Группа: в ухо

Карма: не нужна
Сообщений: 10495
Сила слова: 1.19

Text
mysql> explain SELECT T.*, U.`avatar`, U.`login`, B.`name` AS `blog_name`, B.`sname` AS `blog_sname`, F.`id` AS `favourite`, R.`id` as `rated`, BM.`id` AS `moderator`, PV.`answer_id` FROM `live-cs_topics`AS T  JOIN `live-cs_blogs` AS B ON B.`id`=T.`parent_id`  LEFT JOIN `live-cs_users` AS U ON T.`author`=U.`id`  LEFT JOIN `live-cs_blogs-moders` AS BM ON BM.`blog_id`=B.`id` AND BM.`user_id`=1  LEFT JOIN `live-cs_topics-fav` AS F ON F.`topic_id`=T.`id` AND F.`user_id`=1  LEFT JOIN `live-cs_topics-rating` AS R ON R.`topic_id`=T.`id` AND R.`user_id`=1  LEFT JOIN `live-cs_poll-votes` AS PV ON PV.`poll_id`=T.`id` AND PV.`user_id`=1  WHERE T.`deleted`='0' ORDER BY T.`date` DESC;
+----+-------------+-------+--------+-------------------------------+-----------+---------+---------------------------+------+---------------------------------+
| id | select_type | table | type   | possible_keys                 | key       | key_len | ref                       | rows | Extra                           |
+----+-------------+-------+--------+-------------------------------+-----------+---------+---------------------------+------+---------------------------------+
|  1 | SIMPLE      | B     | ALL    | PRIMARY                       | NULL      | NULL    | NULL                      |   21 | Using temporary; Using filesort |
|  1 | SIMPLE      | T     | ref    | parent_id,deleted,parent_id_2 | parent_id | 4       | live-cs.B.id              |  203 | Using where                     |
|  1 | SIMPLE      | U     | eq_ref | PRIMARY                       | PRIMARY   | 4       | live-cs.T.author          |    1 |                                 |
|  1 | SIMPLE      | BM    | eq_ref | blog_id                       | blog_id   | 8       | live-cs.T.parent_id,const |    1 | Using index                     |
|  1 | SIMPLE      | F     | eq_ref | user_id                       | user_id   | 8       | const,live-cs.T.id        |    1 | Using index                     |
|  1 | SIMPLE      | R     | eq_ref | user_id                       | user_id   | 8       | const,live-cs.T.id        |    1 | Using index                     |
|  1 | SIMPLE      | PV    | eq_ref | poll_id                       | poll_id   | 8       | live-cs.T.id,const        |    1 |                                 |
+----+-------------+-------+--------+-------------------------------+-----------+---------+---------------------------+------+---------------------------------+
 
Записан

8: Undefined variable: str
Файл: /home/pyha/pyha.ru/forum/bbcode/Xbb/Tags/Man.php
Строка: 18
adw0rd: мудень блять, я уже фиксить стал эту фигню :)
md5: вуахахахаха
phpdude    ↓ 
24 Ноябрь, 2009, 04:24:05 , спустя 2 минуты 33 секунды
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: 20793
Сила слова: 1.66

надо проверить индексы на таблице B
 
слушай, а этот запрос полторы секунды выполняется? строк то немного возвращается и на сортировку не похоже
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
adw0rd    ↓ 
24 Ноябрь, 2009, 04:26:54 , спустя 2 минуты 49 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17634
Сила слова: 1.67

USE INDEX()
http://dev.mysql.com/doc/refman/5.1/en/index-hints.html
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
md5    ↓ 
18 Декабрь, 2009, 03:40:53 , спустя 23 дня 23 часа 13 минут 59 секунд
НЕ ХУЕТА! ХУЕТА!

выезд, апартаменты, массаж, стриптиз, подружки, дорого
Группа: в ухо

Карма: не нужна
Сообщений: 10495
Сила слова: 1.19

пидары :(
Записан

8: Undefined variable: str
Файл: /home/pyha/pyha.ru/forum/bbcode/Xbb/Tags/Man.php
Строка: 18
adw0rd: мудень блять, я уже фиксить стал эту фигню :)
md5: вуахахахаха
Baboot    ↓ 
18 Декабрь, 2009, 05:31:32 , спустя 1 час 50 минут 39 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 10
Сообщений: 441
Сила слова: 2.27

))))))))))))))))))))))))))))))))))))
Записан

2b||!2b
Страниц: [1]
Печать
 

Перейти в: