2009-10-06 14 views
12

Ich merke, dass die genaue Frage bereits auf Stapelüberlauf mit nur einer vage schlüssigen Antwort gefragt wurde: linkInterpretiert mysql 5.0 Nullwerte?

So hier ist es wieder.

Tabelle A: Hat eine Ganzzahlspalte, die nullbar ist, zusammen mit einem Index. Abfrage:

SELECT * 
FROM table 
WHERE column IS NULL 
LIMIT 10; 

Wird ein Index verwendet werden, oder wird eine vollständige Tabellen-Scan mysql tun, bis es 10 Einträge gefunden hat?

Antwort

4

Die einzige Möglichkeit zu wissen, dass in Ihr spezifischer Fall ist, führen Sie "EXPLAIN SELECT" auf Ihre Abfrage.

Es hängt wirklich von der Anzahl der NULL in Ihrer Tabelle verglichen mit der Gesamtzahl der Zeilen ab; ob Tabellenstatistiken aktualisiert wurden, usw.

3

Sie müssten die Abfrage analysieren. Im Allgemeinen hängt es vom relativen Prozentsatz von NULLs zu Werten ab. Wenn die Mehrheit der Einträge in dieser Ganzzahlspalte NULL ist, wird sie wahrscheinlich übersprungen.

Auf der anderen Seite, wenn nur 10% (zum Beispiel) NULL sind, wird (oder sollte) der Index verwendet werden.

+1

Danke Sir. Ich brauchte nur eine Rezension dazu. Und ich möchte für jeden, der in Zukunft auf diese Seite kommt, hinzufügen, dass Ihre Antwort am besten ist. – usumoio

+0

Danke. Sehr froh, dass es hilfreich war. –