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

(var)char come tipo di colonna per le prestazioni?

Non credo che usare char o varchar invece di intero sia una buona idea. È difficile aspettarsi quanto sarà più lento del PK intero, ma questo design sarà più lento - l'impatto sarà più terribile quando ti unirai a tavoli più grandi. Se puoi, usa invece i tipi ENUM.

http://www.postgresql.org/docs/9.2/static /datatype-enum.html

CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');

CREATE TABLE person (
    name text,
    current_mood mood
);
INSERT INTO person VALUES ('Moe', 'happy');
SELECT * FROM person WHERE current_mood = 'happy';
 name | current_mood 
------+--------------
 Moe  | happy
(1 row)

I tipi varchar e char di PostgreSQL sono molto simili. L'implementazione interna è la stessa:char può essere (è un paradosso) un po' più lento a causa dell'aggiunta di spazi.