Если предположить, что рассматриваемая таблица проиндексирована, то один из двух вариантов, безусловно, оправдан, если какой-либо из индексов превосходит доступную оперативную память. Не удивительно, что одним из них является увеличение оперативной памяти. Другое, конечно, вертикальное разделение.
В ответе gbn есть несколько полезных моментов, о которых вы не упомянули, например, сколько записей в месяц (или неделю, или день) добавляется. Комментарий Ричарда относительно того, насколько велика (средняя) запись, также имеет большое значение, особенно с точки зрения того, насколько велики средние записи для индексов, предполагая, что индексы не включают все поля из таблицы.
Ответ Гбн, однако, также кажется мне немного безрассудным. Растет на 20 миллионов строк в месяц и даже не «думает о чем-то вроде разделения». Без достаточных показателей, как указано выше, это возможный путь к катастрофе. По крайней мере, вы должны подумать об этом, даже просто чтобы определить, как долго вы можете поддерживать текущий и / или ожидаемый темп роста, прежде чем подумать об увеличении объема ОЗУ или разделов.