Есть ли программа для чистки БД.
10 ответов162 просмотровСейчас просматривают: 1
· 03.03.2010, 16:31
Есть ли такая программа для чистки базы данных,например от чаров,вот допустим чтоб сортировала персонажей по последнему входу на сервер или с никами типо 111111, 12345,asdfds и тд,просто уже надоели эти твинки с такими никами и 1 лвлами,просто у меня на сервере уже 3000+ чаров и очень долго надо сидеть и удалять не нужные,ну в общем я думаю вы поняли меня.
ЗЫ:Искал долго,не нашел!
0
· 03.03.2010, 19:49
Скрипт для очистки базы ява сервера:
Суть проста, удаляются чары и все вещи и прочее ниже определенного времени или не заходившие с какого то времени.
Код
UPDATE characters SET online=0;
DELETE FROM characters WHERE lastAccess < 1191211200;
DELETE FROM accounts WHERE lastactive < 1191211200;
DELETE FROM characters WHERE level < 75;
DELETE FROM characters WHERE account_name NOT IN (SELECT login FROM accounts);
DELETE FROM accounts WHERE login NOT IN (SELECT account_name FROM characters);
DELETE FROM clan_data WHERE leader_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM clan_privs WHERE clan_id NOT IN (SELECT clan_id FROM clan_data);
DELETE FROM clan_subpledges WHERE clan_id NOT IN (SELECT clan_id FROM clan_data);
DELETE FROM clan_wars WHERE clan1 NOT IN (SELECT clan_id FROM clan_data);
DELETE FROM clan_wars WHERE clan2 NOT IN (SELECT clan_id FROM clan_data);
DELETE FROM auction_bid WHERE bidderId NOT IN (SELECT clan_id FROM clan_data);
DELETE FROM clanhall_functions WHERE hall_id NOT IN (SELECT ID FROM clanhall WHERE ownerId <> '0');
UPDATE clanhall SET paidUntil='0' WHERE ownerId NOT IN (SELECT clan_id FROM clan_data);
UPDATE clanhall SET ownerId='0' WHERE ownerId NOT IN (SELECT clan_id FROM clan_data);
DELETE FROM account_data WHERE account_name NOT IN (SELECT login FROM accounts);
DELETE FROM account_data WHERE account_name NOT IN (SELECT account_name FROM characters);
DELETE FROM account_data WHERE value NOT IN (SELECT obj_Id FROM characters);
DELETE FROM items WHERE loc <> 'clanwh' and owner_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM items WHERE loc = 'clanwh' and owner_id NOT IN (SELECT clan_id FROM clan_data);
DELETE FROM character_skills WHERE char_obj_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM character_skills_save WHERE char_obj_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM character_shortcuts WHERE char_obj_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM character_recipebook WHERE char_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM character_quests WHERE char_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM character_macroses WHERE char_obj_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM character_hennas WHERE char_obj_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM character_friends WHERE char_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM character_subclasses WHERE char_obj_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM couples WHERE player1Id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM couples WHERE player2Id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM pets where item_obj_id not in (SELECT object_id FROM items);
DELETE FROM seven_signs WHERE char_obj_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM forums WHERE forum_owner_id <> '0' AND forum_owner_id NOT IN (SELECT clan_id FROM clan_data);
DELETE FROM characters WHERE lastAccess < 1191211200;
DELETE FROM accounts WHERE lastactive < 1191211200;
DELETE FROM characters WHERE level < 75;
DELETE FROM characters WHERE account_name NOT IN (SELECT login FROM accounts);
DELETE FROM accounts WHERE login NOT IN (SELECT account_name FROM characters);
DELETE FROM clan_data WHERE leader_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM clan_privs WHERE clan_id NOT IN (SELECT clan_id FROM clan_data);
DELETE FROM clan_subpledges WHERE clan_id NOT IN (SELECT clan_id FROM clan_data);
DELETE FROM clan_wars WHERE clan1 NOT IN (SELECT clan_id FROM clan_data);
DELETE FROM clan_wars WHERE clan2 NOT IN (SELECT clan_id FROM clan_data);
DELETE FROM auction_bid WHERE bidderId NOT IN (SELECT clan_id FROM clan_data);
DELETE FROM clanhall_functions WHERE hall_id NOT IN (SELECT ID FROM clanhall WHERE ownerId <> '0');
UPDATE clanhall SET paidUntil='0' WHERE ownerId NOT IN (SELECT clan_id FROM clan_data);
UPDATE clanhall SET ownerId='0' WHERE ownerId NOT IN (SELECT clan_id FROM clan_data);
DELETE FROM account_data WHERE account_name NOT IN (SELECT login FROM accounts);
DELETE FROM account_data WHERE account_name NOT IN (SELECT account_name FROM characters);
DELETE FROM account_data WHERE value NOT IN (SELECT obj_Id FROM characters);
DELETE FROM items WHERE loc <> 'clanwh' and owner_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM items WHERE loc = 'clanwh' and owner_id NOT IN (SELECT clan_id FROM clan_data);
DELETE FROM character_skills WHERE char_obj_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM character_skills_save WHERE char_obj_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM character_shortcuts WHERE char_obj_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM character_recipebook WHERE char_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM character_quests WHERE char_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM character_macroses WHERE char_obj_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM character_hennas WHERE char_obj_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM character_friends WHERE char_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM character_subclasses WHERE char_obj_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM couples WHERE player1Id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM couples WHERE player2Id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM pets where item_obj_id not in (SELECT object_id FROM items);
DELETE FROM seven_signs WHERE char_obj_id NOT IN (SELECT obj_Id FROM characters);
DELETE FROM forums WHERE forum_owner_id <> '0' AND forum_owner_id NOT IN (SELECT clan_id FROM clan_data);
http://la2base.ru/forum/index.php?showtopi...%E5%E7%ED%FB%E5
Может перепишешь как либо под ники и очистишь. Жди кого то , кто напишеь запрос, типо от 11 до 00000 ники. А софта не видел такого..
0
· 04.03.2010, 09:14
Программ нет, есть запросы.
Вот с помощью этого можно удалить всех персонажей 1 уровня:
Код
DELETE FROM characters WHERE level='1';
Да и вообще, 3000 персонажей это не повод для удаления.
0
· 04.03.2010, 09:53
qwerty111: Программ нет, есть запросы.
Вот с помощью этого можно удалить всех персонажей 1 уровня:КодDELETE FROM characters WHERE level='1';
Да и вообще, 3000 персонажей это не повод для удаления.
если руки кривые, то такой запрос ваш вариант.
не стоит забывать, что информация о чарах "размазана" по всей базе.
потом стоит юзать именно запрос из первого комментария.
0
· 04.03.2010, 10:01
Kpu3uc_Bo3pacTa: если руки кривые, то такой запрос ваш вариант.
не стоит забывать, что информация о чарах "размазана" по всей базе.
потом стоит юзать именно запрос из первого комментария.
Нет блин, вся информация хранится в 1 файле.
К твоему сведению, еще в l2j присутствовала функция автоматической очистки базы (если не отключено администратором). То есть нет необходимости делать это вручную. Ты лишь показал свою глупость, и все.
0
· 04.03.2010, 10:37
qwerty111: Нет блин, вся информация хранится в 1 файле.
К твоему сведению, еще в l2j присутствовала функция автоматической очистки базы (если не отключено администратором). То есть нет необходимости делать это вручную. Ты лишь показал свою глупость, и все.
1. не глупость, а незнание, не стоит путать горячее с оранжевым.
2. никогда не видел в л2ж и вообще в ява сервере такой функции.
пальцем на конфиг покажи.
0
· 04.03.2010, 13:43
Kpu3uc_Bo3pacTa: 1. не глупость, а незнание, не стоит путать горячее с оранжевым.
2. никогда не видел в л2ж и вообще в ява сервере такой функции.
пальцем на конфиг покажи.
Ну сервер действительно при загрузке потрёт добрую часть "мусора" оставшуюся от несуществующего персонажа:
cм. _http://www.l2jserver.com/svn/trunk/L2_GameServer/java/com/l2jserver/gameserver/idfactory/IdFactory.java
— Perpetuum Mobile
0
· 05.03.2010, 11:52
Цитата
UPDATE characters SET online=0;
DELETE FROM characters WHERE lastAccess < 1191211200;
DELETE FROM accounts WHERE lastactive < 1191211200;
DELETE FROM characters WHERE level < 75;
DELETE FROM characters WHERE lastAccess < 1191211200;
DELETE FROM accounts WHERE lastactive < 1191211200;
DELETE FROM characters WHERE level < 75;
Напишите как этот запрос работает,я так понял что все чары ниже 75 лвла которые не заходили в игру до указанного времени будут удалены,или не так?
0
· 05.03.2010, 12:36
<<AiZek>>: Напишите как этот запрос работает,я так понял что все чары ниже 75 лвла которые не заходили в игру до указанного времени будут удалены,или не так?
1. вырубаешь сервак гс и лс.
2. делаешь дампы баз.
3. запускаешь указанные тобой запросы - выставляет правильные лвла и время (время кстати это mysql-time от unixtime отличается тем, что данные указаны в миллисекундах, а не секундах)
4. запускаешь гс и лс.
0
· 05.03.2010, 12:53
<<AiZek>>: Напишите как этот запрос работает,я так понял что все чары ниже 75 лвла которые не заходили в игру до указанного времени будут удалены,или не так?
Будут удалены аккаунты, на которые не заходили после определённой даты.
Будут удалены чары, которыми не играли после определённой даты.
Будут удалены все чары ниже 75 уровня.
0
Войдите или зарегистрируйтесь чтобы ответить

