PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Qual è il numero massimo di colonne in una query di selezione PostgreSQL

Secondo PostgreSQL Limits è "250 - 1600 a seconda dei tipi di colonna". Vedi nota sotto la tabella. I tipi di colonna lo influenzano perché in PostgreSQL le righe possono essere larghe al massimo 8 kb (una pagina), non possono estendersi su pagine. I valori grandi nelle colonne sono OK perché TOAST gestisce questo, ma c'è un limite al numero di colonne che puoi inserire dipende dalla larghezza dei tipi di dati non TOAST utilizzati.

(Strettamente si riferisce a colonne che possono essere archiviate in righe su disco; le query potrebbero essere in grado di utilizzare set di colonne più ampi di questo. Non consiglio di fare affidamento su di esso.)

Se stai anche solo pensando di avvicinarti ai limiti della colonna, probabilmente avrai problemi.

La mappatura di fogli di calcolo su database relazionali sembra la cosa più semplice del mondo:mappare colonne su colonne, righe su righe e via. Giusto? In realtà, i fogli di calcolo sono enormi mostri a forma libera che non impongono alcuna struttura e possono essere davvero ingombranti. I database relazionali sono progettati per gestire lotti più righe, ma a pagamento; nel caso di PostgreSQL, parte di tale costo è una limitazione alla larghezza delle righe. Quando si affrontano fogli di calcolo creati da Joe User, questo può essere un vero problema.

Una "soluzione" è scomporli in EAV, ma è indicibilmente lento e brutto con cui lavorare. Le soluzioni migliori sono l'utilizzo di array ove possibile, tipi compositi, hstore , json, xml, ecc.

Alla fine, tuttavia, a volte la risposta migliore è analizzare il foglio di calcolo utilizzando un foglio di calcolo.