PostgreSQL имеет ограничение столбцов от 250 до 1600 «в зависимости от типов столбцов» и поддерживает пространственные данные и запросы с расширением PostGIS. Поэтому я был бы склонен сделать две вещи:
Во-первых, если столбец представляет категорию, а не свободный текст, создайте отдельную таблицу с этими категориями и замените столбец целочисленным идентификатором и ограничением внешнего ключа, ссылаясь на таблицу категорий.
Во-вторых, разбейте Third Normal Form, разделив большую таблицу на два или более логическим образом, и установите отношения один-к-одному между ними. Это, пожалуй, не самый эффективный, но если вам редко нужны некоторые данные, тогда запрос может быть просто на те таблицы, которые вы хотите.
Другой совершенно другой альтернативой может быть использование базы данных "NOSQL", такой как MongoDB, CouchDB и так далее. Не существует жестких ограничений размера «строки», и если данные отсутствуют для записи, это не должно занимать места.
Пространственная поддержка не так хороша для таких типов больших таблиц, но MongoDB поддерживает двухмерные пространственные запросы и данные, и CouchDB, похоже, обладает аналогичной функциональностью.