PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

(var)char als Typ der Spalte für die Leistung?

Ich denke nicht, dass die Verwendung von char oder varchar anstelle von integer eine gute Idee ist. Es ist schwer zu erwarten, wie viel langsamer es sein wird als Integer-PK, aber dieses Design wird langsamer sein - die Auswirkungen werden schrecklicher sein, wenn Sie größeren Tabellen beitreten. Wenn möglich, verwenden Sie stattdessen ENUM-Typen.

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)

PostgreSQL varchar und char-Typen sind sehr ähnlich. Die interne Implementierung ist die gleiche - char kann (es ist paradox) etwas langsamer sein, da Leerzeichen hinzugefügt werden.