immi: Volltextsuche: BOOLEAN vs natursprachliche Suche

Hallo

Ich bin dabei eine Volltextsuche (match..against) zu optimieren.

EXPLAIN SELECT * FROM tabelle WHERE MATCH titel AGAINST ('suchwort')

liefert folgendes:

|sel.type |table|possible_keys | key     | key_len | ref  | rows | Extra     |
| simple | Tabelle| titel     | titel    |      0  |      |    1 | using where

Was genau bedeutet "key_len"? Wieso hat das hier den Wert 0? Hat das damit zu tun, das ich keine joins benutze?

"rows" gibt doch die Anzahl der zu erwartenden Datensätze an?! Bei der Suche werden 30.000 Datensätze gefunden. Wiso steht da der Wert 1.

Wieso hat "ref" gar keinen Wert?

Es wird keine Sortierung verwendet. Das liegt vermutlich daran, das der Index richtig erzeugt ist bzw kein ORDER BY verwendet wird. Wobei man ja bei der Indexerzeugung über eine Spalte mit der Reihenfolge auch nichts falsch machen kann.

Trotz allem: Die Abfrage dauert (natürlich ohne EXPLAIN) noch zu lange! ca. 0.08s

wird die gleiche suche im BOOLEAN MODE ausgeführt:

SELECT * FROM tabelle WHERE MATCH titel AGAINST ('suchwort' IN BOOLEAN MODE)

dauer das ganze nur noch 0.002s. Das ist gut, sollte man meinen. (Warmu geht das im BOOLEAN MODE so viel schneller? Weil die sortierung wegfällt? Aber im obigen bespiel dachte ich eigentlich das auch keine Sortierung verwendet wird.)
Wird jedoch die Abfrage folgendermaßen modifiziert:

SELECT * FROM tabelle WHERE MATCH titel AGAINST ('suchwort' IN BOOLEAN MODE)
LIMIT 20000, 30

dauert das ganze auf einmal 0.12s. Also noch länger als die natursprachliche Suche ohne BOOLEAN MODE. Warum wird die BOOLEAN-SUCHE immer langsamer je weiter hinten die ergebnisse angezeigt werden sollen. Die suche ohne BOOLEN MODE und auch mit limit, bleibt hingegen in etwa gleich schnell. Wieso?

Das wars erstmal :)
Freu mich über jeden Tipp zur volltextsuche!