SQL_CALC_FOUND_ROWS oder: Wie man effektiv Blätternavigationen umsetzt

Ich optimiere derzeitig sehr fleißig an meinen Projekten, da ich die tolle Logfunktion log-queries-not-using-indexes für mich entdeckt hab (Teil vom Slow-Query-Log). Im Zuge dessen habe ich einige SQL-Abfragen entdeckt, die SQL_CALC_FOUND_ROWS nutzen (vor allem von eingesetzten Fremdscripten, z.B. WordPress). Ich wollte nun also mal wissen, wozu das gut ist – und das soll hier beschrieben…

COUNT(*) gegen COUNT(spalte)

Immer wieder benötigt man in SQL-Abfragen die Anzahl der zurückgegebenen Datensätze. Dazu dient die SQL-Funktion COUNT(). Als Argument nimmt diese Funktion entweder ein ‚*‘ oder eine bestimmte Spalte. Im MySQL Performance Blog wird verglichen, ob man dabei COUNT(*) oder COUNT(spalte) verwenden sollte. COUNT(*) greift auf den internen Cache von MySQL zurück und kann deshalb recht…

Zählschleife so oft durchführen, wie ein Array Einträge hat

Schleifen, die ein Array durchlaufen sind sehr häufig. Dazu gibt es entweder die foreach-Schleife oder die for-Schleife mit Zählvariable. Besonders bei letzterer sieht man sowohl in von Hobbyprogrammiern als auch in von professionellen Entwicklern programmiertem Code recht häufig folgenden Schleifenkopf: $array = array(…); for($i=0;$i<count($array);$i++)> … }$array = array(…); for($i=0;$i<count($array);$i++)> … }