PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

(var)char comme type de colonne pour les performances ?

Je ne pense pas que l'utilisation de char ou de varchar à la place d'entier soit une bonne idée. Il est difficile de prévoir à quel point il sera plus lent que le PK entier, mais cette conception sera plus lente - l'impact sera plus terrible lorsque vous rejoindrez des tables plus grandes. Si vous le pouvez, utilisez plutôt les types 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)

Les types varchar et char de PostgreSQL sont très similaires. L'implémentation interne est la même - char peut être (c'est un paradoxe) un peu plus lent en raison de l'ajout d'espaces.