Die Daten werden erstmal komplett zum Client (Prozess der PHP-Code ausführt) übertragen. Dann greifen andere mysql_* Funktionen auf diese lokalen Daten zu. PHP/MySQL kann man hier halt nicht wirklich trennen, sondern nur Client/Server. Veranwortlich hierfür ist die MySQL-Extension für PHP, die die C-API von MySQL verwendet.
das ist ja interessant. habe ich mir bisher keine gedanken drum gemacht, da ich hauptsächlich mit db2 und oracle zu tun habe. die machens definitiv nicht so.
allerdings ist dieses vorgehen aber auch nachteilig. es erhöht die antwortzeiten und kann bei ungewollt großen ergebnissen zu abstürzen wegen speichermangels führen. es wäre daher wohl angebracht, erst einmal mit count() die ergebnismenge zu checken.
daher ist auch die praktische limit möglichkeit zu erklären.
was passiert eigentlich bei 'blätterseiten', wo aus der ergebnismenge ein bereich per limit ausgewählt wird. holt mysql dort auch erst die komplette ergebnismenge gemäß der bedingung ?