sql >> Database >  >> RDS >> PostgreSQL

(var)char als het type kolom voor prestaties?

Ik denk niet dat het een goed idee is om in plaats daarvan char of varchar te gebruiken. Het is moeilijk te verwachten hoeveel langzamer het zal zijn dan integer PK, maar dit ontwerp zal langzamer zijn - de impact zal groter zijn als je aan grotere tafels gaat deelnemen. Gebruik in plaats daarvan 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)

De typen PostgreSQL varchar en char lijken erg op elkaar. Interne implementatie is hetzelfde - char kan (het is paradoxaal) een beetje langzamer zijn vanwege toevoeging door spaties.



  1. Hoe voeg ik een specifieke UUID in de h2-database in?

  2. 'Kan MySQL-datum/tijd-waarde niet converteren naar System.DateTime' WANNEER geen datum wordt gebruikt - C#.Net

  3. Kan een DB niet verbinden met AWS

  4. Hoe gebruik ik een door de gebruiker gedefinieerde MySQL-functie vanuit PHP?