• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Нагрузка БД при регистрации пользователей

Статус
В этой теме нельзя размещать новые ответы.

method

Постоялец
Регистрация
8 Июл 2007
Сообщения
557
Реакции
161
Вообщем случилась вчера беда - хостер отрубил доступ к БД. Прислали письмо :

dle 7.5 модули редиректа, причина удаления комента, радио.
насколько я понял, это балуется файл engine\ajax\registration.php сравнивая, есть ли данное имя в базе. База зарегеных пользователей большая , вот и нагрузка.
Возможно так же бот пытается перебирать логинами, если так, что можно сделать, что б предотвратить .
Пока тупо отключил регу, но это вообще не выход.
1 ) Так ли это, или я неправильно понял причину нагрузки, или что то другое. Если другое, то как с этим боротся?
2 ) Если же это бот, что посоветуете ?
3 ) Если просто большая база юзеров, каким запросом удалить юзверей. которые не заходили ранее такой то даты (ждать дле 8 прошу не советывать;) ) . Опция такая есть, но каким образом и когда она начнет чистить базу - хз.
 
1) Оптимизируй БД
2) Проудаляй всех "лишних" юзеров

При реге запросы сильные идут... Да и запросов прилично может быть...
 
Оптимизировал. Как удалить, я ж и спрашиваю, каким запросом в май админ это сделать (удалить всех неактивных с такой то даты). Внутренними возможностями скрипта пока это очень затруднительно, только в 8 обещают массовые удаления.
 
method, запросом сложно...

DELETE FROM ***_user WHERE lastdate=''
Впиши дату в ввиде времени эры никсов...
*** замени на префикс...

Должно удалить всех, кто не заходил с lastdate

Добавлено через 3 минуты
Не уверен, что прокатит, но можно так сделать:

DELETE FROM ***_user WHERE lastdate='' AND comm_num='0'

Удалит только если комментов нет... Но не помню, работает ли оператор AND в DALATE...
 
У меня было подобное с новостями. Было из слишком много непроверенных. Ну и с пользователями я так понял так же. Отфильтруйте в пхп май админ по дате или другим параметрам и удаляйте там. Это конечно кропотливое занятие но это того стоит. Я например так удалял 70000 новостей.
Да и оптимизируйте базу. Удалите все что ненадо и не используется. Если есть левые таблици и не использующиеся в этой базе тоже удаляйте. К томуже в пхпмайадмин есть функция помоему оптимизации базы. Попробуйте пока так
 
вообще в настройках движка есть функция удалять юзеров которые неактивны сколько укажешь дней.
 
Сейчас подумал - я сморозил тупой запрос... Ты удалим не всех, у кого посещение раньше, а только у тех, у кого равно...

Скорее всего, нужно юзать либо phpMyAdmin, либо надеяться на стандартную функцию...
 
Не братва ... я просто в шоке чего вы тут намудрили ....

Решение:
PHP:
$thisdate = $_TIME - (5*3600*24); // вместо 5 - сколько дней
$db->query("DELETE FROM " . USERPREFIX . "_users WHERE lastdate < '$thisdate' and user_group = '4'");

Снесёт всю живность из группы 4, которая небыла на сайте 5 дней, все значения можно менять.
 
Народ вы что велосипед изобретаете зайди в админку и поставь на пример не посещавшие более 2 мес или 3 мес как тебе нужно и двиг сам прекрасно с этим справляется. У тебя пол базы мервых регистраций вот и мочи их!
 
Народ вы что велосипед изобретаете зайди в админку и поставь на пример не посещавшие более 2 мес или 3 мес как тебе нужно и двиг сам прекрасно с этим справляется. У тебя пол базы мервых регистраций вот и мочи их!
я ж написал, опция есть , я о ней знаю, но как быстро она удаляет и когда это делает, непонятно, а надо было срочно :)
Мой хостер потерпел, все неактивные почистились стандартной опцией, но мускуль запроса так и не узнал ;).
Все равно всем спасибо, тему можно закрывать.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху