Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Optimieren Sie die MySQL-Abfrage, um den Index für eine bitweise Where-Klausel zu verwenden

Ich glaube nicht, dass MySQL dazu gebracht werden kann, Indizes für bitweise Operationen zu verwenden.

Es gibt einige Diskussionen darüber im MySQL Performance Forum:http://forums.mysql. com/read.php?24,35318 ("Sind Index-Scans mit bitweisem Vergleich möglich?"), wo ein MySQL-Mitarbeiter eine Lösung vorschlägt, die darauf basiert, eine Tabelle mit einer Zeile pro (Ding, Set-Bit)-Paar zu haben und eine Reihe von Joins durchzuführen. Ich denke, wie gut das funktioniert, hängt stark von Ihrer speziellen Anwendung ab.

Gemäß http://dev.mysql.com/tech -resources/articles/mysql-set-datatype.html Indizes sind nicht nützlich, um die gleiche Art von Operationen auf SET durchzuführen Werte (die mit ganzen Zahlen und bitweisen Operationen implementiert werden). Ich hätte gedacht, dass, wenn es eine clevere Indexoptimierung für bitweise Operationen gäbe, diese bereits auf SET angewendet worden wäre s.