sql >> Database teknologi >  >> RDS >> Sqlserver

SQL:Hvad er bedre en bit eller et tegn(1)

For SQL Server:op til 8 kolonner af typen BIT kan gemmes inde i en enkelt byte, mens hver kolonne af typen CHAR(1) optager en byte.

På den anden side:en BIT kolonne kan have to værdier (0 =falsk, 1 =sand) eller slet ingen værdi (NULL) - mens en CHAR(1) kan have en hvilken som helst tegnværdi (meget flere muligheder)

Så egentlig handler det om:

  • har du virkelig brug for et sandt/falsk (ja/nej) felt? Hvis ja:brug BIT
  • har du brug for noget med mere end blot to mulige værdier - brug CHAR(1)

Jeg tror ikke, det gør nogen væsentlig forskel, set ud fra et præstationsmæssigt synspunkt – medmindre du har titusindvis af kolonner. Så selvfølgelig ved at bruge BIT som kan gemme op til 8 kolonner i en enkelt byte ville være en fordel. Men igen:for dit "normale" databasetilfælde, hvor du har nogle få, et dusin af disse kolonner, gør det virkelig ikke den store forskel. Vælg den kolonnetype, der passer til dine behov - vær ikke bekymret for ydeevne.....



  1. Eksport af din database til overførsel

  2. Opdater eller indsæt (flere rækker og kolonner) fra underforespørgsel i PostgreSQL

  3. Benchmarking databaser 101 - del 1

  4. Forstå hvad sp_updatestats virkelig opdaterer