Как правильно хранить/выбирать данные в PostgreSQL?
Третья_нормальная_форма 
И тк ты не знаешь какой набор полей у тебя в действительности есть
не знаешь какие запросы у тебя превалируют
не знаешь набор типов полей
...
непонятно, что означает "лучше", "быстро" и тд
Мне кажется, что все проблемы от того, что вы храните совершенно разные сущности в одной колонке. До тех пор, пока вы их не разложите по разным местам, вы будете страдать. И даже регулярки/флаги/попытки сохранить числа отдельно от строк проблему не решат на 100% - вы сами привели пример, когда не ясно, сумма лежит в строке или телефон. У вас что-то не так в самой схеме хранения.... Предметную область знаете только вы, так что вам решать, что и где)
Если это динамические атрибуты, то возможно стоит посмотреть в сторону jsonb, залитого gin. Но нужно детальнее понять, какая аналитика будет над этими полями и почему важны именно числа.