phpbar.de logo

Mailinglisten-Archive

Problem mit Index where und order by

Problem mit Index where und order by

Michael Bonfert mysql-de_(at)_lists.bttr.org
Mon, 25 Mar 2002 16:44:02 +0100


> Aber das weiss der SQL-Optimizer ja nicht. Der sieht nur, dass der Index
> fuer Board1 ueber 30% ausmacht und geht dann ueber alle Datensaetze weil
> er so schneller ist.
>
> Anders geht er ueber den Index, weil pro Board wahrscheinlich weniger
> als 30% getroffen werden. Und die Ergebnismenge kennt er vorher nicht.
>
> Der Limit Befehl aendert nichts, da er ja ueber mehr als 30% sortiert
> und dann erst den Limit macht.
>
> Ohne Sortierung koennte das Limit eventuell den Index nutzen.

Laut  http://www.mysql.com/doc/M/y/MySQL_indexes.html

"If the use of the index would require MySQL to access more than 30 % of
the rows in the table. (In this case a table scan is probably much faster,
as this will require us to do much fewer seeks.) Note that if such a query
uses LIMIT to only retrieve part of the rows, MySQL will use an index
anyway, as it can much more quickly find the few rows to return in the
result. "

 müßte es mit Limit aber funktionieren.



---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive