VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Запрос был утянут отсюда, в одной из тем кажется Kerk выкладывал хак с таким запросом.
Code:
SELECT T.threadid,
T.lastposter AS lastposter,
T.title AS title,
T.postusername,
P.dateline AS lastpostdate,
views,
T.postuserid,
T.replycount AS replycount,
U.userid as userid,
F.title AS forumTitle,
P.username AS pUser,
P.userid AS pUserid,
postid
FROM post AS P
LEFT OUTER JOIN thread AS T ON (P.threadid = T.threadid)
LEFT JOIN user AS U ON (T.lastposter = U.username)
LEFT JOIN forum AS F ON (T.forumid = F.forumid)
WHERE 1=1 AND T.forumid NOT IN (11,18,15,19,53,20,21,52,54,46,65,75,77,86,88,89,90,91,106,107,92,99,102,113,114,115) AND P.visible = 1 AND T.visible = 1
ORDER BY P.dateline DESC
LIMIT 12;
Время выполнения получается до 6 секунд. Если подключать его к форуму - загрузка проца растет с 3% до 90% :((( Можно ли как-то его оптимизировать или запрос с NOT IN в принципе не будет быстрее?
Cyr88 Selectiv Forum Filter случаем не установлен?
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,835
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20332
Репутация в разделе: 8468
0
проблема не в хаке форум фильтер
там сам запрос "тяжеловат" =)
его можно немного оптимизировать
@netwind
Гуру
Join Date: Aug 2005
Location: Рiдна Олбанея
Posts: 3,844
Версия vB: 3.8.x
Reputation:
Гуру 1227
Репутация в разделе: 901
0
Code:
SELECT T.threadid
, T.lastposter AS lastposter
, T.title AS title
, T.postusername
, P.dateline AS lastpostdate
, views
, T.postuserid
, T.replycount AS replycount
, U.userid AS userid
, F.title AS forumTitle
, P.username AS pUser
, P.userid AS pUserid
, postid
FROM
post AS P
force index (dateline) -- вот это
JOIN thread AS T
ON (P.threadid = T.threadid)
JOIN user AS U
ON (T.lastposter = U.username)
JOIN forum AS F
ON (T.forumid = F.forumid)
WHERE
1 = 1
AND T.forumid NOT IN (11,18,15,19,53,20,21,52,54,46,65,75,77,86,88,89,90,91,106,107,92,99,102,113,114,115)
AND P.visible = 1
AND T.visible = 1
ORDER BY
P.dateline DESC
LIMIT
12
netwind добавил 05.12.2011 в 18:25
Quote:
Originally Posted by kerk
его можно немного оптимизировать
ну вот скажи почему тут возник LEFT JOIN user и forum? когда это писалось, ты действительно считал, что вывод на главную сообщений из удаленного форума или от удаленного пользователя, очень нужен ? если это просто привычка, то стоит ее изжить.
Last edited by netwind : 12-05-2011 at 07:25 PM.
Reason: Добавлено сообщение
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,835
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20332
Репутация в разделе: 8468
0
начнем с того, что этот запрос писал не я =)
на момент написания этого кода, я не слишком разбирался во всех тонкостях запросов в БД
поэтому скопировал в нашу страницу то, что было, вернее, то, что нашли в нете
позже этот запрос и был оптимизирован (на сколько помню, zCarot правил его) и долгое время, результат запроса, висел на главной
пока я не снес все эти самописные странички =)