PostgreSQL має обмеження стовпців від 250 до 1600 "залежно від типів стовпців" і підтримує просторові дані та запити з розширенням PostGIS. Тому я був би схильний зробити дві речі:
По-перше, коли стовпець представляє категорію, а не вільний текст, створіть окрему таблицю з цими категоріями та замініть стовпчик на ціле ідентифікатор та обмеження зовнішнього ключа, посилаючись на таблицю категорій.
По-друге, розірвіть Третю нормальну форму, розділивши велику таблицю на дві чи більше логічно, і встановіть між собою відносини один на один. Це, мабуть, не найефективніше, але якщо вам рідко потрібні деякі дані, то запит може бути просто на потрібних таблицях.
Іншою абсолютно іншою альтернативою було б використання бази даних "NOSQL", таких як MongoDB, CouchDB тощо. Немає жодних обмежених на обмеження розміру "рядок", і якщо даних немає для запису, він не повинен займати місця.
Просторова підтримка не настільки хороша для таких типів баз даних великих розмірів, але MongoDB підтримує 2D просторові запити та дані, а CouchDB, схоже, має подібну функціональність.