sql >> Databasteknik >  >> RDS >> Sqlserver

Snabbare att fråga ett binärt(1)-fält eller 8-bitarsfält?

Index på enbitsfält kommer i princip vara värdelösa. En bit har fruktansvärd selektivitet, 0 eller 1, och kommer troligen att ignoreras av optimeraren. 8 index på 8 bitars fält kommer att vara 8 index som ignoreras av optimeraren.

Ett index på en bytekolumn är bara något mer selektivt, med 256 distinkta värden. Men om du söker individuella bitmönster, som "är bit 3 på", så finns det inget sätt att uttrycka detta som ett individuellt värde att söka eller som ett intervall.

Slutsats är att oavsett vad du försöker, kommer du att sluta med en tabellskanning i alla fall .

Så förklara bättre vad som är ditt problem, inte din lösning, så kanske vi kan tänka på något mer effektivt.



  1. Hur man använder "ha" med paginering i relationens kolumn i laravel 5

  2. Att använda Solr sökindex som en databas - är det fel?

  3. "Kunde inte hitta pg-0.12.2 i någon av källorna" när du kör rspec

  4. Hur skapar man en kapslad meny från MySQL med PHP?