Я работаю с анализатором веб-сайтов, который будет использоваться для анализа нашего собственного сайта в соответствии с журналом от tomcat.
Теперь мы ежедневно переносим журнал из tomcat в базу данных (MySQL), теперь он работает хорошо. Однако я обнаружил потенциальную и смертельную проблему!
До сих пор мы помещали журнал в одну таблицу в базе данных, но элементы журнала скоро будут быстро увеличиваться, особенно когда у нас будет больше пользователей, очевидно, что одна таблица не может сохранить столько элементов журнала (также это приведет к низкая производительность при выполнении операции запроса из таблицы large ).
И мы используем hibernate в качестве слоя персистентности, каждая строка в таблице журнала отображается в Java-объекте LogEntry в приложении.
Я думал, что каждый месяц создаю новую таблицу, но как сделать, чтобы LogEntry отображал более чем одну таблицу и выполнял запросы к таблицам?
Кроме того, номер журнала каждого месяца может не совпадать, крайний пример, как насчет того, чтобы номер журнала (записи в таблице) превышал максимальную емкость таблицы в дБ?
Тогда я подумал установить свойство, чтобы ограничить максимальное количество журналов, которые будут выдвигаться при переходе из спящего режима в журнал в db. Если это так, я понятия не имею, попросить hibernate создать новую таблицу и автоматически выполнять запросы к ней.
Есть идеи?
Обновление до Сэнди:
Я знаю ваше значение, то есть максимальная емкость таблицы определяется ОС, и если я использую разбиение, максимальная возможность может увеличиваться, пока не достигнет максимальной емкости моего диска. Однако даже если я использую раздел, мне кажется, что мне не нужно заботиться о максимальных возможностях таблицы, но если таблица содержит слишком много записей, это приведет к низкой производительности. (Кстати, мы еще не решили удалить старые журналы.) Еще один способ, который я подумал, это создать больше, чем таблицы с одинаковой структурой, но я использую hibernate, все операции вставки и запроса журналов будут проходить через hibernate, и может объект (POJO) сопоставлен с несколькими таблицами?