Also ich fand dieses Code-Snippet hier auf SO. Es fälscht im Wesentlichen eine "row_number()" -Funktion für MySQL. Es führt ziemlich schnell aus, was ich mag und brauche, aber ich kann am Ende keine Wo-Klausel anheften.Wie kann ich diese Abfrage mit einer Alias-Spalte beschleunigen?
Hinzufügen in where iterator = 875
ergibt einen Fehler.
Das obige Snippet wird in ungefähr 0,0004 Sekunden ausgeführt. Ich weiß, dass ich es in eine andere Abfrage als Unterabfrage einbinden kann, aber dann wird es schmerzhaft langsam.
select * from (
select
@i:[email protected]+1 as iterator, t.*
from
big_table as t, (select @i:=0) as foo) t
where iterator = 875
Das obige Snippet dauert mehr als 10 Sekunden.
Wie auch immer, um das zu beschleunigen?
Sie können in der where-Klausel keine Alias-Spalte verwenden, es sei denn, Sie machen sie zu einer Unterabfrage. – 1000111
Ja, das ist, was ich realisiere, aber wenn ich es zu einer Unterabfrage mache, wird die Geschwindigkeit miserabel (.0004 Sekunden auf die Unterabfrage,> 10 Sekunden in ein anderes 'Auswählen') Aktualisiert die Frage. – MikelG