Non sto tentando di riavviare l'UUID rispetto al dibattito sui numeri interi seriali. So che ci sono punti validi su entrambi i lati. Sto usando UUID come chiave primaria in molti dei miei tavoli.Prestazioni del tipo UUID PostgreSQL
- Tipo di colonna:
"uuidKey" text NOT NULL
- Indice:
CREATE UNIQUE INDEX grand_pkey ON grand USING btree ("uuidKey")
- primaria vincolo di chiave:
ADD CONSTRAINT grand_pkey PRIMARY KEY ("uuidKey");
Qui è la mia prima domanda; con PostgreSQL 9.4 c'è qualche vantaggio in termini di prestazioni nell'impostare il tipo di colonna in UUID?
La documentazione http://www.postgresql.org/docs/9.4/static/datatype-uuid.html descrive gli UUID, ma c'è qualche vantaggio oltre alla sicurezza del tipo per l'utilizzo di questo tipo al posto del tipo text
? Nella documentazione sui tipi di carattere indica che char(n)
non avrebbe alcun vantaggio su text
in PostgreSQL.
Tip: Non v'è alcuna differenza di prestazioni tra questi tre tipi, a parte da aumentare lo spazio di memorizzazione quando si utilizza il tipo vuoto imbottito, ea alcuni cicli supplementare CPU per controllare la lunghezza quando la memorizzazione in un length- colonna vincolata. Mentre il carattere (n) ha i vantaggi dello in alcuni altri sistemi di database, non esiste un tale vantaggio in PostgreSQL; infatti il carattere (n) è solitamente il più lento di tre a causa dei suoi costi di archiviazione aggiuntivi. Nella maggior parte dei casi, è necessario utilizzare il testo o caratteri diversi.
Non sono preoccupato per lo spazio su disco, mi chiedo solo se vale la pena confrontare i tipi di colonna UUID vs testo?
Seconda domanda, hash vs indici b-tree. Non ha senso ordinare le chiavi UUID, quindi b-tree avrebbe altri vantaggi rispetto all'indice hash?
Se si sta creando un indice univoco oltre alla chiave primaria, non è necessario. Quando si imposta una chiave primaria, viene creato un indice univoco sulla chiave. –
Forse l'ho mostrato nell'ordine sbagliato. L'indice è stato creato automaticamente dal vincolo principale della chiave. – adamek
Sembra inoltre, secondo i documenti (al momento in cui questo commento 9.4 è l'ultima versione stabile), che l'uso degli indici hash sia scoraggiato: http://www.postgresql.org/docs/9.4/static/indexes -types.html –