Hallo. Ich habe mir meine beiden langsamsten MySQL-Queries in der Konsole angesehen und gesehen, dass die meiste Zeit bei:
| Copying to tmp table | 0.000263 |
| Copying to tmp table | 0.052237 |
| Sorting result | 0.000035 |
vergeht. Was hat es mit den tmp tables auf sich? Es war mir nicht bewusst, dass sowas überhaupt passiert. Und kann ich den Query anpassen, um das zu verbessern?
Z.Bsp. diesen:
select `pics`.*, `users`.`username`, `users`.`displayname` from `pics` left join `users` on `users`.`id` = `pics`.`user_id` order by RAND() asc limit 4;
Da werden 4 Zufallsbilder geladen, und username und displayname dazu geholt mit join.
Aber am join sollte es nicht liegen, oder?
Indizes habe ich diese:
pics:
PRIMARY | id |
---|---|
UNIQUE | created_at |
INDEX | user_id |
INDEX |
location |
und bei users:
PRIMARY | id |
---|---|
UNIQUE |
username |
danke für einen tipp.