PostgreSQL có giới hạn cột trong khoảng từ 250 đến 1600 "tùy thuộc vào loại cột" và hỗ trợ dữ liệu không gian và truy vấn với tiện ích mở rộng PostGIS. Vì vậy, tôi sẽ có xu hướng làm hai điều:
Đầu tiên, trong đó một cột biểu thị một danh mục thay vì văn bản tự do, hãy tạo một bảng riêng với các danh mục đó và thay thế cột bằng ID số nguyên và ràng buộc khóa ngoài, tham chiếu bảng danh mục.
Thứ hai, phá vỡ hình thức bình thường thứ ba bằng cách chia bảng lớn thành hai hoặc nhiều hơn theo một cách hợp lý nào đó và thiết lập mối quan hệ một-một giữa chúng. Đây có lẽ không phải là hiệu quả nhất, nhưng nếu bạn hiếm khi cần một số dữ liệu, thì truy vấn có thể chỉ nằm trên các bảng bạn muốn.
Một cách khác hoàn toàn khác là sử dụng cơ sở dữ liệu "NOSQL" như MongoDB, CouchDB, v.v. Không có giới hạn cứng cho kích thước "hàng" và nếu dữ liệu không có trong hồ sơ, nó sẽ không chiếm bất kỳ không gian nào.
Hỗ trợ không gian không tốt cho các loại cơ sở dữ liệu bigtable này, nhưng MongoDB hỗ trợ các truy vấn và dữ liệu không gian 2D và CouchDB dường như có chức năng tương tự.