Страница 1 из 2

Удаление старых данных MySQL

СообщениеДобавлено: 15 мар 2013, 09:25
abagrov
За 1,5 месяца использования база MySQL раздулась до 100Мб. Ничего умнее применения DELETE я не придумал. Подскажите, данных команд достаточно?
Код: Выделить всёDELETE * FROM col_medals WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_rating_tank_china WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_rating_tank_france WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_rating_tank_germany WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_rating_tank_uk WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_rating_tank_usa WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_rating_tank_ussr WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_tank_china WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_tank_france WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_tank_germany WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_tank_uk WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_tank_usa WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_tank_ussr WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)

Естественно, надо будет добавить ещё префиксы кланов. И можно ли эти команды выполнить через апгрейд базы в админке модуля?

Или же можно ли как то создать php файл с данными командами и запускать его в кроне?

Re: Удаление старых данных MySQL

СообщениеДобавлено: 15 мар 2013, 11:29
Exinaus
abagrov писал(а):За 1,5 месяца использования база MySQL раздулась до 100Мб. Ничего умнее применения DELETE я не придумал. Подскажите, данных команд достаточно?
Код: Выделить всёDELETE * FROM col_medals WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_rating_tank_china WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_rating_tank_france WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_rating_tank_germany WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_rating_tank_uk WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_rating_tank_usa WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_rating_tank_ussr WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_tank_china WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_tank_france WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_tank_germany WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_tank_uk WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_tank_usa WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
DELETE * FROM col_tank_ussr WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)

Естественно, надо будет добавить ещё префиксы кланов. И можно ли эти команды выполнить через апгрейд базы в админке модуля?

Или же можно ли как то создать php файл с данными командами и запускать его в кроне?

Надо названия таблиц заключить в кавычки (для mysql необходим гравис - обратный апостроф). Например: `col_tank_ussr`, тогда префикс будет добавлен автоматически, и такой файл можно будет выполнять через апгрейд базы в админке модуля.
ЗЫ Надо еще col_players очищать, или специально не удаляли эту информацию?

Re: Удаление старых данных MySQL

СообщениеДобавлено: 15 мар 2013, 11:55
abagrov
Exinaus писал(а):
abagrov писал(а):За 1,5 месяца использования база MySQL раздулась до 100Мб. Ничего умнее применения DELETE я не придумал. Подскажите, данных команд достаточно?

Естественно, надо будет добавить ещё префиксы кланов. И можно ли эти команды выполнить через апгрейд базы в админке модуля?

Или же можно ли как то создать php файл с данными командами и запускать его в кроне?

Надо названия таблиц заключить в кавычки (для mysql необходим гравис - обратный апостроф). Например: `col_tank_ussr`, тогда префикс будет добавлен автоматически, и такой файл можно будет выполнять через апгрейд базы в админке модуля.
ЗЫ Надо еще col_players очищать, или специально не удаляли эту информацию?

Да, про плайерс я забыл. Вскользь его посмотрел и подумал, что в нём только список игроков. Теперь понимаю, что там прогресс статы по игрокам.
И так, я правильно понимаю, что через админку модуля команда
Код: Выделить всёDELETE * FROM `col_tank_uk` WHERE up<(UNIX_TIMESTAMP()-30*24*60*60)
удалит данные старше 30 дней из всех созвучных клановых таблиц *_col_tank_uk? Т.е. мне не надо делать отдельные запросы на удаление по конкретным таблицам?
Я почему спрашиваю. База раздулась выше предела, при котором можно сделать бэкап. И теперь у меня есть только одна попытка сделать удаление правильно. Хочется быть во всём уверенным.

Re: Удаление старых данных MySQL

СообщениеДобавлено: 15 мар 2013, 12:19
Exinaus
И так, я правильно понимаю, что через админку модуля команда удалит данные старше 30 дней из всех созвучных клановых таблиц *_col_tank_uk?

Только для текущего модуля.
Если у вас больше одного клана, то такой файл надо выполнить в админке каждого модуля.
Ну а идея верная, такой файл удалит данные старше 30 дней.

Re: Удаление старых данных MySQL

СообщениеДобавлено: 15 мар 2013, 14:39
abagrov
Как резюме выше сказанного получился файлик
(289 байт) Скачиваний: 142
. Посредством пункта админки "База данных" - "Апгрейд базы" он (файл сначала распаковать!) удаляет из конкретного клана статистику старше 30 дней.

К разработчикам: но вобще не плохо было добавить в админку стандартную кнопку по очистке базы старше дцати дней. И/или аналогичную процедуру проделывать автоматически во время крона.

Re: Удаление старых данных MySQL

СообщениеДобавлено: 15 мар 2013, 18:06
shw
Вообще странно - полгода на одном клане укладываются в 75 метров.

Re: Удаление старых данных MySQL

СообщениеДобавлено: 16 мар 2013, 01:56
Dzuteint
shw писал(а):Вообще странно - полгода на одном клане укладываются в 75 метров.

с 22 или 21 февраля по текущий день. бд - 12 мегобайт
а если там 10 кланов?
так что хз

Re: Удаление старых данных MySQL

СообщениеДобавлено: 16 мар 2013, 09:00
viktor6
Dzuteint писал(а):
shw писал(а):Вообще странно - полгода на одном клане укладываются в 75 метров.

с 22 или 21 февраля по текущий день. бд - 12 мегобайт
а если там 10 кланов?
так что хз

Извините Но зачем вам аж 10 кланов на одной статистике?

Re: Удаление старых данных MySQL

СообщениеДобавлено: 16 мар 2013, 09:12
darka
1 месяц, 5 кланов - 70 мб

Re: Удаление старых данных MySQL

СообщениеДобавлено: 16 мар 2013, 10:45
Exinaus
viktor6 писал(а):Извините Но зачем вам аж 10 кланов на одной статистике?

Большой альянс?