sql >> Database teknologi >  >> RDS >> Mysql

Optimer mysql-forespørgsel for at bruge indeks på en Bitwise where-klausul

Jeg tror ikke, at MySQL kan fås til at bruge indekser til bitvise operationer.

Der er nogle diskussioner om dette i MySQL Performance-forummet:http://forums.mysql. com/read.php?24,35318 ("Er indeksscanninger mulige med bitvis sammenligning?"), hvor en MySQL-medarbejder foreslår en løsning baseret på at have en tabel med én række pr. (ting,set-bit) par og lave en masse joins. Jeg vil gætte på, at hvor godt dette virker, vil afhænge meget af din specifikke applikation.

Ifølge http://dev.mysql.com/tech -resources/articles/mysql-set-datatype.html indekser kan ikke bruges til at udføre den samme slags operationer på SET værdier (som er implementeret med heltal og bitvise operationer). Jeg ville have troet, at hvis der var nogen smart indeksoptimering til bitvise operationer, ville den allerede være blevet anvendt på SET s.



  1. PostgreSQL:Vis tabeller i PostgreSQL

  2. Python og MySQLdb - Brug af DROP TABLE IF EXISTS ser ud til at give en undtagelse

  3. Lagring af flere afkrydsningsfeltsdata i MySQL-database med PHP

  4. Introduktion af agentbaseret databaseovervågning med ClusterControl 1.7