PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

(var)char como o tipo da coluna para desempenho?


Eu não acho que usar char ou varchar em vez de integer é uma boa ideia. É difícil esperar o quanto será mais lento do que o PK inteiro, mas esse design será mais lento - o impacto será mais terrível quando você juntar tabelas maiores. Se puder, use os tipos 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)

Os tipos varchar e char do PostgreSQL são muito semelhantes. A implementação interna é a mesma - char pode ser (é paradoxo) um pouco mais lento devido à adição de espaços.