SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 23.07.2009 13:03:28

Misterio
Участник
Зарегистрирован: 23.07.2009
Сообщений: 2

Как лучше хранить логи?

Така фигня.
Есть в базе несколько таблиц с логами, в частности game_log, fight_log, chat_log и т.д.
все на innoDB с индексами.
Логи через 14 дней уже не актуальны, поэтому старые автоматически удаляются утилиткой, висящей в фоне, через простой DELETE:
DELETE FROM game_log WHERE date<’текущая дата-14 дней′

Беда в том, что всё работает нормально, но примерно рас в месяц база начинает жутко тупить, помогает только DROP и пересоздание всех вышеупомянутых таблиц.
В принципе идеально было бы переносить данные в архив (Archive Storage Engine) таблицу, но это же будет сделано инсертами в архивную с последующим делетом из лога (если есть другой способ, буду рад узнать), что в итоге опять сломает базу.

Есть идеи по этому поводу?

Неактивен

 

#2 27.07.2009 21:13:56

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Как лучше хранить логи?

Обычно разбивают таблички на несколько штук и объединяют их через VIEW или MERGE.
Ну и старые физические таблички, которые уже не нужны — удаляют.

В любом случае, хранить журналы в InnoDB — не разумно, обычно MyISAM хватает за глаза.

Неактивен

 

#3 28.07.2009 15:30:26

Misterio
Участник
Зарегистрирован: 23.07.2009
Сообщений: 2

Re: Как лучше хранить логи?

Спасибо, подозревал что-то в этом роде.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson