Zitat von
RavenIV:
Wie soll die Datenbank einen gescheiten Index verwenden, wenn
a) keiner vorhanden ist (nur CategoryId)?
b) ein SELECT * gemacht wird?
c) perparedStatements nicht verwendet werden?
Überleg Dir doch nochmal das
DB-Design und die
SQL-Abfrage.
Er hat einen "primary key" auf ID, einen Index auf CategoryID. Was willst Du mehr.
Die "where" Klausel verweist klar auf CategoryID. Das ist für den Optimizer kein Problem.
Preparen (es dürfte weniger als 20ms dauern) bringt nur was bei ständiger Wiederholung der gleichen Abfrage
und auch dann eher wenig. habe ich mal gemessen. Bei mir dauert das abholen von 800 Sätzen aus einer Tabelle mit 27.000.000 (27 Millionen) Sätzen unter 40ms - inklusive "prepare".
Beim dem "select *" wäre allerdings zu klären was ZEOS mit den Blobs macht (immerhin 4 Stück).
Wenn ZEOS die für jede Zeile "fetcht" und die noch sehr umfangreich sind kann
das schon ziemlich bremsen. Ich kenne ZEOS allerdings nicht.
Ich würde mir eher überlegen ob es sinnvoll ist, eine Datenstruktur zu basteln die alle 16.000 Zeilen beinhaltet.
Anything, carried to the extreme, becomes insanity. (Exilant)