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

Hurtigere at forespørge i et binært(1) felt eller 8 bit felter?

Indekser på et enkelt bitfelt vil grundlæggende være ubrugelige. En smule har en frygtelig selektivitet, 0 eller 1, og vil sandsynligvis blive ignoreret af optimizeren. 8 indekser på 8 bit felter vil være 8 indekser, der ses bort fra af optimeringsværktøjet.

Et indeks på en bytesøjle er kun lidt mere selektivt med 256 forskellige værdier. Men hvis du søger individuelle bitmønstre, som "er bit 3 tændt", så er der ingen måde at udtrykke dette som en individuel værdi at søge eller som et interval.

Konklusion er, at uanset hvad du prøver, vil du ende op med en tabelscanning alligevel .

Så forklar hellere, hvad der er dit problem, ikke din løsning, og måske kan vi tænke på noget mere effektivt.



  1. ORA-1114 kører Datapatch

  2. PHP/MySql søgearray med array

  3. c++ konverter postgres tidsstempel uden tidszone til time_t

  4. SQL Vælg for at få en værdi til at blive vist én gang