sql >> Databasteknik >  >> RDS >> PostgreSQL

(var)char som kolumnstyp för prestanda?

Jag tror inte att det är bra att använda char eller varchar istället för heltal. Det är svårt att förvänta sig hur mycket långsammare det kommer att vara än heltals-PK, men den här designen kommer att vara långsammare - effekten kommer att bli mer fruktansvärd när du går med i större tabeller. Om du kan, använd ENUM-typer istället.

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 och char typer är väldigt lika. Intern implementering är densamma - char kan vara (det är paradoxalt) lite långsammare på grund av tillägg av mellanslag.



  1. Hur återställer man data i en Oracle-tabell?

  2. Icke-superanvändare kan inte ansluta om servern inte begär ett lösenord när dblink används

  3. PostgreSQL-grupperingsfel

  4. Kolumnen ogiltig i urvalslistan eftersom den inte finns i vare sig en aggregatfunktion eller GROUP BY-satsen