sql >> Databasteknik >  >> RDS >> Sqlserver

SQL:Vad är bättre en bit eller en char(1)

För SQL Server:upp till 8 kolumner av typen BIT kan lagras i en enda byte, medan varje kolumn av typen CHAR(1) kommer att ta upp en byte.

Å andra sidan:en BIT kolumnen kan ha två värden (0 =falskt, 1 =sant) eller inget värde alls (NULL) - medan en CHAR(1) kan ha vilket teckenvärde som helst (mycket fler möjligheter)

Så egentligen handlar det om:

  • behöver du verkligen ett sant/falskt (ja/nej)-fält? Om så är fallet:använd BIT
  • behöver du något med mer än bara två möjliga värden - använd CHAR(1)

Jag tror inte att det gör någon nämnvärd skillnad, ur prestationssynpunkt – om du inte har tiotusentals kolumner. Sedan, naturligtvis, med BIT som kan lagra upp till 8 kolumner i en enda byte skulle vara fördelaktigt. Men återigen:för ditt "normala" databasfall, där du har några, ett dussin av dessa kolumner, gör det verkligen ingen stor skillnad. Välj den kolumntyp som passar dina behov - oroa dig inte över prestanda.....



  1. Så här kontrollerar du datumformatet för din Oracle-session

  2. Använd flera konfliktmål i ON CONFLICT-satsen

  3. Använder Jquery Ajax för att hämta data från Mysql

  4. SQL Server Query - gruppvis multiplikation