sql >> Databasteknik >  >> RDS >> PostgreSQL

prestandatyp varchar(1) eller smallint för att lagra status Postgres

Enligt min åsikt kämpar du fel strid. Du är orolig för prestandaeffekten av att lagra ett heltal istället för ett enda teckenfält, vilket enligt min mening är kortsiktigt tänkande. Den faktiska inverkan på prestandan för ett heltal kontra ett enda tecken är trivial, och jag tvivlar på att detta kan mätas på ett meningsfullt sätt. Enligt min erfarenhet är det viktigare att minska den kognitiva belastningen på utvecklarna och användarna av systemet, och därför är det bättre att använda teckenfält som är tillräckligt långa för att innehålla en rimlig beskrivning av status istället för numeriska värden eller enstaka teckens förkortningar. Att inte behöva komma ihåg vad 1, 2, 'A' eller 'X' betyder är till stor hjälp. Istället för dessa förkortade värden föreslår jag att du använder lättförståeliga värden som 'KLAR', 'AKTIV', 'BEHANDLAD', 'AVBRUKT', etc.

När det gäller den andra delen av frågan - inte riktigt. Det kan finnas en obetydlig tid för att flytta den längre strängen, men det är trivialt om du inte pratar om miljontals värden.

Lycka till.



  1. 3 sätt att formatera ett tal som en procentandel i PostgreSQL

  2. Få maxvärde och motsvarande kolumn

  3. Kopiera data mellan två tabeller i PostgreSQL med dblink.sql

  4. MySQL min och max för varje kolumn