Philipp Hasenfratz: Abfragen Optimieren

Beitrag lesen

Halihallo innuendo

ich habe von meinem Provider eine auf den Rüssel bekommen, weil meine Abfragen zu lange dauern. Jetzt möchte ich diese optimieren und hätte gerne ein paar Tipps von Profis bekommen.

Informiere dich über Indizies (Index) und deine Sorgen sind
Geschichte (soweit ich sie jetzt übersehen kann ;)).

ID  int(10) auto_increment (Primary Key)
Content varchar(150)  BINARY
project  int(10)

http://www.mysql.com/doc/en/MySQL_indexes.html
http://www.mysql.com/doc/en/CREATE_TABLE.html

select *,content from mytable

Das "content" ist überflüssig, wenn du eh alle Attribute selektierst.
Brauchst du wirklich alle Attribute?

where
project = $project_id
order by rand() limit 10

Ein Index über project bringt einen starken Performance-Schub.

Davon ca. 3-4 Stück auf einer Seite. Pro Project würde ich sagen gibt es max. 100.000 Ergebnisse.

Spielt keine Rolle. ORDER BY RAND() LIMIT 10 wird vom QueryOptimizer
verbessert.

Was kann ich optimieren, wo kann ich den Hebel ansetzen, damit ich keine mehr auf den Rüssel bekomme, ohne dass ich meine Table auseinanderreiße? Sind die Abfragen "schlecht"?

Die Abfragen nicht umbedingt, aber die Tabellendefinition. Sprich:
die fehlenden Indizies. Das ist böse[tm].

Viele Grüsse

Philipp