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

Optimieren der MySQL-Abfrage für die Ganzzahlbereichssuche

Wenn sich die IP-Bereiche nicht überschneiden, die Abfrage also nie mehr als eine Zeile zurückgibt, können Sie Folgendes verwenden:

SELECT q.*
FROM 
  ( SELECT csv.* 
    FROM csv
    WHERE csv.begin < 3338456592 
    ORDER BY csv.begin DESC
    LIMIT 1
  ) AS q
WHERE 3338456592 < q.end ;

Es muss kein Index hinzugefügt werden. Der primäre Index wird verwendet.