Биллинговая система Nodeny

Главная категория => Nodeny Plus => Тема начата: DenisNikolaich от 27 Июня 2018, 07:29:17



Название: Вопрос по MySQL (удаление и сортировка)
Отправлено: DenisNikolaich от 27 Июня 2018, 07:29:17
Доброе время суток, уважаемые форумчане. Стоит вопрос о создании фейкового сервера и прореживании базы. Задача такова:
необходимо из разных услуг удалить определенное кол-во абонентов и подчистить за ними хвосты. Оговорюсь заранее, что с MySQL
туго - очень туго(((, но делал я так:
Делаю дамп с основного сервера и заливаю на фейковый.
Потом удаляю с услуг желаемое кол-во юзеров:
Код:
delete from users where id in (select uid from users_services where service_id = 2) order by rand() limit 60;
ну и подчищаю хвосты:
Код:
delete from data0 where uid not in (select id from users);
delete from pays where mid>0 and mid not in (select id from users);
update ip_pool set uid=0 where uid>0 and uid not in (select id from users);
delete from users_services where uid not in (select id from users);
delete from users_trf where uid not in (select id from users);
delete from auth_log where uid not in (select id from users);
delete from mac_uid where uid>0 and uid not in (select id from users);
update cards set alive='good', uid_activate=0, tm_activate=0  where alive='activated' and uid_activate not in (select id from users);
Вопрос заключается в том что необходимо на фейковом сервере данные обновлять, а пользователи удаляются рандомно, т.е. ситуация
сдампил - накатил - подчистил не прокатит. Возможно ли вместо order by rand() подставить что нибудь постоянное и если можно какие нибудь примеры,
ну очень тугой в MySQL. Заранее огромное спасибо откликнувшимся.


Название: Re: Вопрос по MySQL (удаление и сортировка)
Отправлено: elite от 27 Июня 2018, 11:19:00
какая задача у фейкового сервера?
эмулировать еще одну сеть?
делай выборку по id/3 к примеру


Название: Re: Вопрос по MySQL (удаление и сортировка)
Отправлено: DenisNikolaich от 27 Июня 2018, 11:32:19
Своего рода да (эмулировать еще одну сеть) как бы для бухгалтерии. А  Вы не могли бы пример команды выборки по id/3 подсказать. Ну совсем плохо в мускуле((.


Название: Re: Вопрос по MySQL (Выборка базы)
Отправлено: DenisNikolaich от 02 Апреля 2019, 10:06:19
Уважаемые форумчане! Может ли кто нибудь помочь в решении вопроса с выборкой абонентов с базы данных. Необходимо делать выборку не рандомно. Например в сети работает сервер со 100% пользователей, проходит оплата, снимаются средства и т.д. Но при необходимости запускается фейковый сервер, где пользователей на 30%, например, меньше, но при этом оплата и данные свежие. Получается с рабочего сервака делаю дамп базы, заливаю на фейковый и подчищаю, но очень нужно что бы пользователи после чистки были одни и те же (постоянные). Была подсказка делать выборку по id но с mysql совсем туго. Помогите!!! Заранее благодарю.


Название: Re: Вопрос по MySQL (удаление и сортировка)
Отправлено: Efendy от 02 Апреля 2019, 14:43:15
10% базы
Код:
select id, name from users where substr(id, -1, 1) < 1;
20% базы
Код:
select id, name from users where substr(id, -1, 1) < 2;
30% базы
Код:
select id, name from users where substr(id, -1, 1) < 3;


Название: Re: Вопрос по MySQL (удаление и сортировка)
Отправлено: DenisNikolaich от 02 Апреля 2019, 16:28:07
Станислав огромное спасибо за ответ. При таком раскладе абоненты будут всегда одинаковые или нет?


Название: Re: Вопрос по MySQL (удаление и сортировка)
Отправлено: Efendy от 02 Апреля 2019, 18:15:10
Старые - да. Первый sql: "выбрать абонентов у которых в id последний символ меньше единицы, т.е ноль". Id у юзеров не меняются