sql >> Databáze >  >> RDS >> Sqlserver

Rychlejší dotaz na jedno binární (1) pole nebo 8bitová pole?

Indexy na jednobitovém poli budou v podstatě k ničemu. Bit má příšernou selektivitu, 0 nebo 1, a bude pravděpodobně ignorován optimalizátorem. 8 indexů na 8bitových polích bude 8 indexů ignorovaných optimalizátorem.

Index na bajtovém sloupci je jen o něco selektivnější, s 256 odlišnými hodnotami. Ale pokud hledáte jednotlivé bitové vzory, jako je 'je bit 3 zapnutý', pak neexistuje způsob, jak to vyjádřit jako individuální hodnotu, kterou chcete hledat, ani jako rozsah.

Závěr je, že bez ohledu na to, co zkusíte, skončíte se skenováním tabulky stejně .

Raději tedy vysvětlete, jaký je váš problém, ne vaše řešení, a možná bychom mohli vymyslet něco efektivnějšího.



  1. Duplicitní názvy sloupců v dotazu SQL

  2. Chyba při ukládání @Lob pomocí hibernace java mysql

  3. Proaktivní kontroly stavu serveru SQL Server, část 5:Statistika čekání

  4. Výsledky dotazů PHP/MySQL