Всем привет!
Помогите разобраться, как правильно следить за используемым местом базами данных?
У меня есть тариф веб-хостинга, например, "Стандарт" с 3 Гб места.
На этом хостинге - сайт и форум для сервера (это всё места почти не занимает и можно было использовать бесплатный тариф в придачу к серверу).
Но я ещё для экономии места на самом сервере скинул на веб-хостинг БД плагина-логгера (Minecraft) с записями действий игроков, чтобы можно было откатывать действия грифферов. Под это дело взял побольше тариф, чтобы места было не 1 Гб, а хотя бы 3 Гб.
Ещё 2 года назад столкнулся с проблемой отслеживания занимаемого места БД, т.к., похоже, на хостинге никаких ограничений и автоуведомлений нет. А в ТП мне сказали, что это специально, чтобы не создавать клиентам проблем и мы сами должны следить за используемым местом (например, удаляя старые записи).
В тот момент проблема решилась просто - мне надо было заменить один плагин на другой и поэтому я просто удалил через ISP Manager БД, которая занимала 7 Гб.
(кстати, вопрос - она действительно удалилась и перестала занимать место на хостинге?)
Собственно, вопрос - как это делать правильно (не удаляя полностью БД)?
У меня сейчас БД уже занимает 6.5 Гб и 42 млн записей в самой крупной таблице (это примерно за год существования сервера с низким онлайном), а всякие попытки почистить её, не удаляя, я предпринимаю уже несколько недель.
- Через сам плагин-логгер (CoreProtect) не получилось почистить старые записи БД. Как минимум, размер БД не уменьшился, хотя плагин отчитывался, что что-то там поудалял (возможно, когда-нибудь получится, но пока не вышло).
- через запросы к БД в phpMyAdmin тоже не всё гладко - этот запрос выдаёт ошибку:
DELETE FROM `co_block` WHERE `time` < 1443661261
#1317 - Query execution was interrupted
- запрос такого вида, вроде бы, удаляет записи (потом начинается гемор, что надо учитывать порядковые номера уже удалённых записей), но при этом выяснилось, что вроде бы место, занимаемое БД не меняется (по крайней мере, в ISP Manager, как было 6.5 Гб, так и осталось и даже увеличилось, т.к. игроки продолжают играть, но при этом в phpMyAdmin написано, что размер конкретной таблицы уменьшился)
DELETE FROM `co_block` WHERE `rowid` < 400000
и есть предположение, что тип таблиц "innodb" и при их удалении (и чистке записей?) кэш остаётся на диске и занимаемое место не уменьшается. Но это только предположение, т.к. место пока не уменьшилось. Однако, ведь, в ТП посоветовали именно удалять старые записи...
В общем, как-то странно всё это и не очень понятно, как соответствовать ограничениям хостинга и при этом остаться при своих интересах (не удалять целиком БД, а только старые записи до определённых дат)?
Заранее спасибо, если как-то сможете помочь
Сообщение отредактировал VELVET: 27 Январь 2016 - 21:25