sql >> Databasteknik >  >> RDS >> Mysql

Optimera mysql-frågan för att använda index på en Bitwise where-klausul

Jag tror inte att MySQL kan fås att använda index för bitvisa operationer.

Det finns en del diskussion om detta i MySQL Performance-forumet:http://forums.mysql. com/read.php?24,35318 ("Är indexskanningar möjliga med bitvis jämförelse?") där en MySQL-anställd föreslår en lösning baserad på att ha en tabell med en rad per (sak,set-bit) par och göra ett gäng joins. Jag skulle gissa att hur bra det här fungerar beror mycket på din specifika applikation.

Enligt http://dev.mysql.com/tech -resources/articles/mysql-set-datatype.html index är inte till någon nytta för att göra samma typ av operationer på SET värden (som implementeras med heltal och bitvisa operationer). Jag skulle ha trott att om det fanns någon smart indexoptimering för bitvisa operationer skulle den redan ha tillämpats på SET s.



  1. LADDA DATAINFIL:Ogiltig ut8mb4 teckensträng

  2. Fjärrstyrda mySQL-anslutningar kan inte ansluta till MySQL 4.1+ med det gamla osäkra autentiseringsfelet från XAMPP

  3. ORDER BY id eller date_created för att visa de senaste resultaten?

  4. Hårdkoda rubriker för att excel-fil med PHP medan du dynamiskt frågar SQL