sql >> Databasteknik >  >> RDS >> PostgreSQL

Lägga till ett index på ett booleskt fält

Nej, du kan indexera ett booleskt fält om du kommer att filtrera efter det. Det är en helt rimlig sak att göra, även om PostgreSQL, som med alla index, kan välja att ignorera det om det inte kommer att utesluta tillräckligt mycket av tabellen -- en indexskanning plus ett ton radhämtningar kan vara dyrare än en sekventiell skanning - - vilket kan eller kanske inte påverkar dig beroende på värdena i den kolumnen.

Du bör också vara medveten om att PostgreSQL låter dig sätta villkor på index, vilket jag ofta tycker är användbart med booleska fält. (Se partiella index för detaljer.) Om du vanligtvis filtrerar eller sorterar inom det omfånget, kanske du är bäst betjänt av något som CREATE INDEX ... ON table (some_field) WHERE boolean_field .



  1. Beräkna antalet kalendermånader som två datum omfattar

  2. SqlConnection SqlCommand SqlDataReader ID Disposable

  3. Hur kan jag ansluta till en extern databas från en SQL-sats eller en lagrad procedur?

  4. Hur lägger man till tidsfråga i Oracle?