MySQL Forums
Forum List  »  German

Re: Cluster / Datenübertragung zu langsam?
Posted by: Hartmut Holzgraefe
Date: February 13, 2009 09:19AM

Markus Schatz Wrote:
-------------------------------------------------------
> Hier mal ein Beispiel. Die Tabelle ist etwa 500 MB
> groß mit ca. 370.000 Datensätzen. Der Query
> läuft auf anderen MySQL-Servern in unter einer
> Sekunde ab :-)
>
> --- QUERY ---
>
> SELECT a, b, c, d, e, f, g, h, i, j, k, l, m
> FROM test
> WHERE l < 1233912957 AND m = 'ABC'
> GROUP BY f, k
> ORDER BY l DESC
> LIMIT 10
>
> --- EXPLAIN ---
>
> id -> 1
> select_type -> SIMPLE
> table -> test
> type -> ref
> possible_keys -> m
> key -> m
> key_len -> 5
> ref -> const

ok, d.h. es finden Index Lookups über den Index 'm'
statt, die Bedingung "m = 'ABC'" wird also über den
Index aufgelöst

> rows -> 245419

bleibt aber noch die Bedingung "l < 1233912957"
die nicht über einen Index aufgelöst werden kann
und dazu führt das nun alle potentiellen Ergebniszeilen
mit m='ABC' erst einmal an den SQL node übermittelt
werden müssen der dann schaut für welche tatsächlich
"l < 1233912957" gilt. Das dauert natürlich seine Zeit ...

Abhilfe: entweder einen kombinierten Index über (m,l)
oder "engine_condition_pushdown" aktivieren damit die
Datanodes einfache Where-Bedingungen schon lokal ausführen:

http://dev.mysql.com/doc/refman/6.0/en/condition-pushdown-optimization.html

--
Hartmut Holzgraefe, MySQL Regional Support Manager EMEA

Sun Microsystems GmbH, Sonnenallee 1, 85551 Kirchheim-Heimstetten
Amtsgericht Muenchen: HRB161028
Geschaeftsfuehrer: Thomas Schroeder, Wolfgang Engels, Dr. Roland Boemer
Vorsitzender des Aufsichtsrates: Martin Haering

Options: ReplyQuote


Subject
Views
Written By
Posted
Re: Cluster / Datenübertragung zu langsam?
2451
February 13, 2009 09:19AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.