Основная причина вертикального разделения - это наличие в таблице столбцов, которые обновляются чаще, чем остальные. Вы разделяете их в другой таблице / разделе, и когда вы выполняете обновления, вы не обновляете остальную часть таблицы. Примером может служить счетчик сообщений. Если он находится в той же таблице, что и другие пользовательские данные, каждое обновление счетчика (и их много) будет блокировать всю запись, но вам необходимо часто ее читать. При вертикальном разбиении обновленной таблицей будут user_counters, и производительность пользователей не будет зависеть от количества обновлений.