Verlihub/verlihub

nick='_shareban_'

Closed this issue · 3 comments

В базу идет запрос вида

select share_size, note_usr, note_op, reason, nick_op, last_hit, date_limit, 
date_start, range_to, range_fr, host, ban_type, nick, ip
from banlist 
where ((nick='_shareban_' AND share_size = '1234554321')) 
and ((`date_limit` >= 1678265615) or (`date_limit` is null) or (`date_limit` = 0))
order by `date_limit` desc limit 1

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

RoLex commented

не часто используют, согласен, но и не реже чем hostban например. запрос довольно тяжелый для сервера, тоже согласен, в особенности последняя часть сортировки и возвращения самого свежего бана. но такой функционал имеется в верлике - бан по шаре. во первых я увидел что нулевая шара тоже проверяется - минус пару запросов в корзину, но если честно не помню, нарочно так было сделано или нет. во вторых ник проиндексирован, и если индекса shareban не существует, мускул сразу вернет ноль. далее date_limit который тоже проиндексирован. нулевую шару исправлю, а остальное требуется для функционала.

ну а если проверить при старте один раз, что таблица banlist вообще пустая и не слать запросы к ней (пока не будет insert)? у KCAHDER именно так и есть, а хаб крупный.

RoLex commented

я не видел хаба без банов, у ксандера в том числе. я конечно тебе очень сильно благодарен за твои усилия, и многие из них рельно полезны, но в данном случае уже перебор :-D поправь пожалуйста вот этот баг в флае > pavel-pimenov/flylinkdc-r6xx#50 < не можем уже смотреть на повторяющиеся описания, половина верликов засраны ими