BrianV правильно. Трудно дать правило, потому что оно сильно меняется в зависимости от того, как вы будете использовать таблицу, как она проиндексирована, каковы фактические столбцы в таблице и т. Д.
Что касается общепринятых методов ... для очень больших таблиц вы можете рассмотреть возможность разбиения. Это может быть особенно полезно, если вы обнаружите, что для вашего журнала вы обычно заботитесь только об изменениях за последний 1 месяц (или 1 день, 1 неделю, 1 год и т. Д.). После этого вы можете архивировать более старые части данных, чтобы они были доступны, если это абсолютно необходимо, но не мешают, поскольку вам это практически никогда не понадобится.
Еще одна вещь, которую следует учитывать, - это иметь отдельную таблицу журнала изменений для каждой из ваших реальных таблиц, если вы еще не планируете это делать. Использование одной таблицы журналов делает ОЧЕНЬ сложным работу. Вы обычно должны регистрировать информацию в текстовом поле произвольной формы, которое трудно запросить и обработать. Кроме того, сложно взглянуть на данные, если у вас есть строка для каждого столбца, которая была изменена, потому что вам нужно сделать много объединений, чтобы посмотреть на изменения, которые происходят одновременно в одно и то же время.