powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите оптимизировать сложный запрос с 3 таблицами
24 сообщений из 24, страница 1 из 1
Помогите оптимизировать сложный запрос с 3 таблицами
    #38397238
ms-dred
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ли вариант оптимизировать такой запрос?
SELECT count(w.id) as t_num, w.*
FROM w_table w, w_tag_relation r, w_tag_relation r2
WHERE w.public='1' and w.added_at<'1379285739' AND r.r_wid='9056' AND r2.r_tid=r.r_tid AND w.id = r2.r_wid AND w.id!='9056'
GROUP BY w.id
ORDER BY t_num DESC
LIMIT 0,4
Запрос выводить похожие статьи.
Фигурируют 3 таблицы
основная таблица
w_table
id|tags|added_at|public

Таблица с идентификаторами тегов
w_tag_relation
r_wid|r_tid

Где r_wid = w_table.id
А r_tid = w_tag.t_id

Таблица с тегами
w_tag
t_id|t_name

Я в sql плохо разбираюсь и не пойму зачем тут count и дублирование таблицы w_tag_relation r2

Включил профилирование в codeigniter, все запросы выполняются по 0.006-0.010
А этот аж 0.1546

Можно ли как то перестроить запрос чтобы он побыстрее работал?
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38397245
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ms-dred,

1. пожалуйста, ставьте перевод строки перед каждым "AND"

2. поставьте слово EXPLAIN перед этим СКЛ и
выдайте результат сюда --- сразу будет понятно
сколько у вас записей и каких индексов (возможно)
нехватает.

3. суть запроса вполне ясна: вывести 4 статейки
которые связаны наибольшим количеством
обших тагов с данной статейки.

Начинается запрос с таблицы связок R -- найти все таги статьи 9056

AND r.r_wid='9056'

затем найти все похожие таги в таблице связок R2

AND r2.r_tid=r.r_tid

затем найти все статьи с этими тагами:

AND w.id = r2.r_wid

Дополинительные исловия и исключение оригинальной статьи:

w.public='1'
and w.added_at<'1379285739'
AND w.id!='9056'

затем группировка -- подсчет самых частво встречаемых
(т.е. повторяюшихся, т.е. имеюших много совпадаюших тагов)
стеек, сортировка и вывод первых четырех.

Диагноз -- или индексов нехватает или мускл не понял
с какой таблицы начать.

После того как вы выдадите ЕХПЛАЙН, можно будет посоветовать
индексы и/или добавить STRAIGHT для явного указания порадка
и/или переписать запрос --- например групировку, сортировку и лимит
лучше делать на втором этапе после подключения R2.
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38397246
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пардон, групировку и посчет можно делать на втором этапе,
но лимит 4 надо делать только
на третьем этапе после дополнительных условий на статьи.
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38397251
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДиагноз -- или индексов нехватает или мускл не понял
с какой таблицы начать.

вы смеетесь или издеваетесь?
диагноз - запрос кривой как бумеранг. аргументация - не все поля в кляузе group by
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38397256
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавторДиагноз -- или индексов нехватает или мускл не понял
с какой таблицы начать.

вы смеетесь или издеваетесь?
диагноз - запрос кривой как бумеранг. аргументация - не все поля в кляузе group by

>> аргументация - не все поля в кляузе group by

и да и нет.

С точки зрения функциональности --
запрос абсолютно коректен -- это один из тех редких варинатов
когда неполный ГРОУП БУ допустим.

С точки зрения скорости --
да, вы скорее правы -- лучше сделать групировку и посчет на
втором этапе а не на третьем (как я сказал в предыдушем посте)

И самое главное -- человек попросил ускорить запрос.
Я подозреваю что исправлением индексов и/или
перестройкой запроса (например использованием СТРАЙТ)
можно будет получить более серьезный выигрыш чем
переносом группировки из третьего на второй этап.

Давайте подождем ресультатов експлейна а потом
дообсудим. Ибо лень гадать и тем более спорить не о чем ...
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38397258
ms-dred
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторEXPLAIN SELECT COUNT( w.id ) AS t_num, w . *
FROM w_table w, w_tag_relation r, w_tag_relation r2
WHERE w.public = '1'
AND w.added_at < '1379285739'
AND r.r_wid = '9056'
AND r2.r_tid = r.r_tid
AND w.id = r2.r_wid
AND w.id != '9056'
GROUP BY w.id
ORDER BY t_num DESC
LIMIT 0 , 4
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38397260
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ms-dredавторEXPLAIN SELECT COUNT( w.id ) AS t_num, w . *
FROM w_table w, w_tag_relation r, w_tag_relation r2
WHERE w.public = '1'
AND w.added_at < '1379285739'
AND r.r_wid = '9056'
AND r2.r_tid = r.r_tid
AND w.id = r2.r_wid
AND w.id != '9056'
GROUP BY w.id
ORDER BY t_num DESC
LIMIT 0 , 4

ок, более менее понятно.
порадок прохода таблиц -- правильный.

надо создать индекс одиночный r_WID или
двойной R_WID_TID. Ваш сушествуюшик индекс
T_TID_WID подходит во воторой строчке EXPLAIN
но не подходит в первой строчке -- тут то и потерялась
скорость.

Если с индексом T_WID_TID ксорость будет приемлемая -- то
можно пить пиво, если вскорость все еше не устраивает, то
будем переносить агрегацию на втрорй этап из первого,
хотя дополнительный выигрыш будет не такой заметный.....
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38397262
ms-dred
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я если честно плоховато понимаю о чем речь =)
предположил что нужно в таблице w_tag_relation
Добавить index
r_wid
index

После создания index время увеличилось
стал исполняться ~0.1540
после удалил index ~0.1470
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38397270
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ms-dred,

ок , покажите результаты:

> SHOW CREATE TABLE w_table
> SHOW CREATE TABLE w_tag_relation

> select count(1) from w_table
> select count(1) cnt1,
count(distinct r_wid) cnt2,
count(distinct r_wid) cnt3
from w_tag_relation

> explain select * from w_tag_relation r where r.r_wid='9056'
> explain select * from w_tag_relation r where r.r_wid= 9056
> select count(1) from w_tag_relation r where r.r_wid='9056'

измерить скорость
> select * from w_tag_relation r where r.r_wid='9056'
> select * from w_tag_relation r, w_tag_relation r2,
where r.r_wid='9056'
and r2.r_tid=r.r_tid
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38397271
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на всекий сделайте еше OPTIMIZE TABLE
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38397274
ms-dred
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
упс, скорость не верную предоставил, обновлял страницу и видать mysql кешировал запросы, если перейти в другую статью скорость выполнения запроса ~ от 0.2900 - 0.3544 варьируется
>select count(1) from w_table
выводит
count(1) 8479

>select count(1) cnt1,
count(distinct r_wid) cnt2,
count(distinct r_wid) cnt3
from w_tag_relation

выводит
cnt1 cnt2 cnt3
76255 8495 8495


> explain select * from w_tag_relation r where r.r_wid='9056'
> explain select * from w_tag_relation r where r.r_wid= 9056
Выводит, прикрепил снимком


> select count(1) from w_tag_relation r where r.r_wid='9056'
count(1)
9

скорость запроса
> select * from w_tag_relation r where r.r_wid='9056'
0.0004

скорость запроса
> select * from w_tag_relation r, w_tag_relation r2
where r.r_wid='9056'
and r2.r_tid=r.r_tid
0.0060
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38397276
ms-dred
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл прикрепить
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38397741
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ms-dred,

Вот так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT count(w.id) as t_num, w.id
FROM w_table w
join w_tag_relation r2 on w.id = r2.r_wid
join w_tag_relation r on r2.r_tid=r.r_tid 
WHERE w.public='1' 
  and w.added_at<'1379285739' 
  AND r.r_wid='9056' 
  AND w.id!='9056'
GROUP BY w.id
ORDER BY count(w.id) DESC
LIMIT 0,4 



должен выглядеть твой запрос.
Существенно тут только то, что я убрал все колонки, которые были указаны из таблицы w.
При использовании GROUP BY поля должны либо быть под агрегатными функциями (COUNT, AVG etc), либо быть указаны в GROUP BY, ВСЕ!!!.

MySQL не ограничивает тебя в этом вопросе, разрешая нестандартные вольности, но как он при этом себя ведёт -- неизвестно.
(да плохо ведёт в общем).

Если тебе таки нужны остальные колонки из w, то

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
select w1.* , w2.*
from  w_table w1
join 
(
SELECT count(w.id) as t_num, w.id
FROM w_table w
join w_tag_relation r2 on w.id = r2.r_wid
join w_tag_relation r on r2.r_tid=r.r_tid 
WHERE w.public='1' 
  and w.added_at<'1379285739' 
  AND r.r_wid='9056' 
  AND w.id!='9056'
GROUP BY w.id
ORDER BY count(w.id) DESC
LIMIT 0,4 
) w2 on w2.id = w1.id



Именно оптимизировать тут особенно нечего. попробуй такой вариант (ы) , очень возможно, что MySQL "шалил" на старом запросе.
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38397747
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На счёт оптимизации.
Запрос по сути своей сложный. Тут ничего не поделать.
это нахождение максимального по мощности пересечения наборов тегов.
Придётся найти все пересечения, отсортировать, и затем взять 4 top.

Помочь могут только фильтры --

w.public='1'
and w.added_at<'1379285739'
AND r.r_wid='9056'
AND w.id!='9056'


Если какие-то фильтры ещё можно добавить -- добавляй.
Если нет -- всё, особенно, кроме проверки, что есть индексы на

w.added_at
и
r.r_wid

ничего не сделаешь.
Ну, можно ещё сервак сам оптимизировать, дать больше памяти там, и всё такое прочее.
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38397999
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все же покажите

> SHOW CREATE TABLE w_table
> SHOW CREATE TABLE w_tag_relation

Что-то у вас странное происходит. ЕКСПЛЕЙ дает
то ПРИМАРУ, то Т_ВИД индекс при поиске по R,
при этом всегда выдает 9 ROWS но иногда
filesort а иногда просто index.
При этом отличная милисекундная скорость.
Без поллитра и без SHOW CREATE не обойтись.


автор>select count(1) from w_table
выводит
count(1) 8479

ОК, нормально количество, не мало не много.


автор>select count(1) cnt1,
count(distinct r_wid) cnt2,
count(distinct r_wid) cnt3
from w_tag_relation
выводит
cnt1 cnt2 cnt3
76255 8495 8495

Ну примерно десяток статей на один таг. Нормально.

Тут я хотел посмотреь также р_ТИД , опечатался
...count(distinct r_tid) cnt3



автор> explain select * from w_tag_relation r where r.r_wid='9056'
> explain select * from w_tag_relation r where r.r_wid= 9056
Выводит, прикрепил снимком

Ок, но почему ПРИМАРИ??? илли он у вас,
дефакто, двойной (TID, WID)?
нужен SHOW CREATE TABLE !!!!!!!!!!!!!!!!

автор> select count(1) from w_tag_relation r where r.r_wid='9056'
count(1)
9

скорость запроса
> select * from w_tag_relation r where r.r_wid='9056'
0.0004


Отлично

авторскорость запроса
> select * from w_tag_relation r, w_tag_relation r2
where r.r_wid='9056'
and r2.r_tid=r.r_tid
0.0060

Отлично

теперь пойдем дальше:

Выдайте результат
>> select count(1) from w_tag_relation r, w_tag_relation r2
where r.r_wid='9056'
and r2.r_tid=r.r_tid

Выдайте результат
>> explain
select count(1) cnt, r2.wid
where r.r_wid='9056'
and r2.r_tid=r.r_tid
group by r2.wid

Выдайте скорость
>> select count(1) cnt, r2.wid
where r.r_wid='9056'
and r2.r_tid=r.r_tid
group by r2.wid

Выдайте результат
>> explain
select cnt, w.*
from
(
select count(1) cnt, r2.wid
where r.r_wid='9056'
and r2.r_tid=r.r_tid
and r2.wid !='9056'
group by r2.wid
) zz
STRAIGHT_JOIN w_table w
on w.public='1'
and w.added_at<'1379285739'
AND w.id = r2.r_wid



Выдайте скорость
>> select cnt, w.*
from
(
select count(1) cnt, r2.wid
where r.r_wid='9056'
and r2.r_tid=r.r_tid
and r2.wid !='9056'
group by r2.wid
) zz
STRAIGHT_JOIN w_table w
on w.public='1'
and w.added_at<'1379285739'
AND w.id = r2.r_wid

повторите два последних запросa (експлейн и скорость)
добавив в самом конце
... order by cnt desc
limit 0,4
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38398082
ms-dred
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv, да нужны данные из таблицы w, поэтому первый вариант не подошел, а вот второй существенно снизил время выполнения,
было от 0.2900 - 0.3544, стало 0.0522, при перезагрузки страницы показывает вобще 0.0200 и это очень радует. Спасибо большое.
Решил еще попробовать указать нужные поля для вывода, в таблице их около 15, указал так
select w1.id,w1.img,w1.tags,w1.name , w2.*
......
время выполнения вроде бы изменилось, но совсем не существенно.

javajdbc, в принципе выше запросом уже доволен, но все же если еще получиться снизить время выполнения, тогда можно и продолжить =)
Прошу прощения, у меня в параметрах стояла галочка сокращать тексты и я после выполнения ниже приведенных 2-х запросов подумал что это не важно =) Порставил галочку выводить полуную информацию и вот что выводят они
> SHOW CREATE TABLE w_table
Выводит
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
CREATE TABLE `w_table` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `img` varchar(250) DEFAULT NULL COMMENT 'image and thumb same name',
 `name` varchar(250) DEFAULT NULL,
 `artist` varchar(250) DEFAULT NULL COMMENT 'artist name',
 `site` varchar(250) DEFAULT NULL COMMENT 'artists site',
 `description` text,
 `tags` varchar(350) DEFAULT NULL COMMENT 'comma seprated tags for easy reading',
 `size` varchar(20) DEFAULT NULL COMMENT '1024x800 size',
 `dwn` int(11) NOT NULL DEFAULT '0',
 `rank` int(11) NOT NULL DEFAULT '0',
 `public` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0:pending;1:public;',
 `votes` int(11) NOT NULL DEFAULT '0' COMMENT 'number of votes',
 `num_comments` int(11) DEFAULT '0' COMMENT 'nuber of approved comments',
 `num_all_comments` int(11) DEFAULT '0' COMMENT 'number of all comments, pending and approved for checking comment limit',
 `d1` int(11) NOT NULL,
 `d2` int(11) NOT NULL,
 `d3` int(11) NOT NULL,
 `d4` int(11) NOT NULL,
 `d5` int(11) NOT NULL,
 `d6` int(11) NOT NULL,
 `d7` int(11) NOT NULL,
 `week` int(11) NOT NULL,
 `hash` varchar(200) NOT NULL,
 `color` varchar(255) NOT NULL,
 `ip` varchar(32) DEFAULT NULL,
 `added_at` int(11) DEFAULT NULL,
 `added_by` int(11) NOT NULL DEFAULT '0',
 `index` enum('no','yes') NOT NULL DEFAULT 'yes',
 PRIMARY KEY (`id`),
 KEY `w_state` (`public`,`id`),
 KEY `w_dwn` (`dwn`),
 KEY `w_rank` (`rank`),
 KEY `w_week` (`week`)
) ENGINE=InnoDB AUTO_INCREMENT=9085 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC




> SHOW CREATE TABLE w_tag_relation
Код: sql
1.
2.
3.
4.
5.
6.
CREATE TABLE `w_tag_relation` (
 `r_wid` int(11) NOT NULL DEFAULT '0',
 `r_tid` int(11) NOT NULL DEFAULT '0',
 PRIMARY KEY (`r_wid`,`r_tid`),
 KEY `r_tid_wid` (`r_tid`,`r_wid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC




авторБез поллитра и без SHOW CREATE не обойтись.
xD

авторТут я хотел посмотреь также р_ТИД , опечатался
...count(distinct r_tid) cnt3

По запросу
Код: sql
1.
2.
3.
4.
select count(1) cnt1, 
count(distinct r_wid) cnt2,
count(distinct r_tid) cnt3
from w_tag_relation


Выводит
cnt1 cnt2 cnt3
76255 8495 8652




авторавтор
> explain select * from w_tag_relation r where r.r_wid='9056'
> explain select * from w_tag_relation r where r.r_wid= 9056
Выводит, прикрепил снимком
Ок, но почему ПРИМАРИ??? илли он у вас,
дефакто, двойной (TID, WID)?
нужен SHOW CREATE TABLE !!!!!!!!!!!!!!!!
t_wid не уникальное поле и в основном оно дублируются в таблице 5 -10 раз
а t_tid еще больше, так как оно содержит индекс w_tag.id (в таблице w_tag.name название тега)

авторВыдайте результат
>> select count(1) from w_tag_relation r, w_tag_relation r2
where r.r_wid='9056'
and r2.r_tid=r.r_tid
count(1)
3267

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Выдайте результат
>> explain 
select count(1) cnt, r2.wid
where r.r_wid='9056'
and r2.r_tid=r.r_tid
group by r2.wid

Выдайте скорость
>> select count(1) cnt, r2.wid
where r.r_wid='9056'
and r2.r_tid=r.r_tid
group by r2.wid


а что за cnt, ошибку выдает
авторYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where r.r_wid='9056' and r2.r_tid=r.r_tid group by r2.wid' at line 2
и с последующими sql тоже
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38398106
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ms-dred,

Нда, не ожидал такogo тормоза от mysql
при обработке неполного group by...
0.05 уже хорошая скорость (запрос ор MasterZiv)

Единствено что осталось проверить скорость:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
select z2.cnt, w.*
from
(
select zz.cnt, w.id
from
(
select count(1) cnt, r2.wid
from  w_tag_relation r, w_tag_relation r2 
where r.r_wid='9056'
and r2.r_tid=r.r_tid
and r2.wid !='9056'
group by r2.wid
) zz
STRAIGHT_JOIN w_table w
on w.public='1'
and w.added_at<'1379285739'
AND w.id = zz.wid
order by zz.cnt desc 
limit 0,4
) z2
STRAIGHT_JOIN w_table w2
on z2.wid = w2.id
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38398112
ms-dred
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ошибка базы данных.

Error Number: 1054

Unknown column 'r2.wid' in 'field list'
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38398116
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
иправьте везде на r_wid

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
select z2.cnt, w.*
from
(
select zz.cnt, w.id
from
(
select count(1) cnt, r2.r_wid
from  w_tag_relation r, w_tag_relation r2 
where r.r_wid='9056'
and r2.r_tid=r.r_tid
and r2.r_wid !='9056'
group by r2.r_wid
) zz
STRAIGHT_JOIN w_table w
on w.public='1'
and w.added_at<'1379285739'
AND w.id = zz.r_wid
order by zz.cnt desc 
limit 0,4
) z2
STRAIGHT_JOIN w_table w2
on z2.r_wid = w2.id
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38398146
ms-dred
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторОшибка базы данных.

Error Number: 1052

Column 'r_wid' in field list is ambiguous
xD
он отказывается понимать что от него хотят )))
Вобще думаю вопрос решен, огромное вам спасибо за то что все таки помогли оптимизировать запрос, это самое главное!
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38398183
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ms-dred,

ну и шут с ним с этим запросом :-)
работает --и ладно.
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38398425
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ms-dredMasterZiv, да нужны данные из таблицы w, поэтому первый вариант не подошел, а вот второй существенно снизил время выполнения,
было от 0.2900 - 0.3544, стало 0.0522, при перезагрузки страницы показывает вобще 0.0200 и это очень радует.


Ты в часах время указываешь или в сутках ?

Если хотя бы в секундах, то, извини, вообще не понятно, что тебе надо.
Это быстрые запросы. Я думал, у тебя там по несколько минут...
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38400939
ms-dred
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv, у меня таких запросов на странице несколько, и если пользователей докера то мою ВПС могут положить на лопатки в любой момент, поэтому там где можно снизить время выполнения скрипта, это нужно делать! Это для меня жизненно необходимо.
Конечно, если бы было только два - три этих запроса на весь сайт, то думаю даже и задумываться даже и не стоило бы =)

А так существенно снизили скорость. К тому же мне на будущее будет это уроком, теперь примерно буду знать как оптимизировать запросы, еще конечно почитаю про все это.
Спасибо вам )
...
Рейтинг: 0 / 0
Помогите оптимизировать сложный запрос с 3 таблицами
    #38402072
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ms-dred,

Ты просто неправильно оцениваешь времена выполнения запросов.

Это сотни милисекунд и более. Меньше вообще очень редко бывает.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите оптимизировать сложный запрос с 3 таблицами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]