IPC 2012 Spring Edition

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 werden, weil es eine ganz tolle Funktion ist. Weiterlesen >

Schlagwörter: , , ,

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 schnell die Anzahl zählen. Das geht allerdings nur, wenn die zu zählende Spalte NOT NULL gesetzt ist, da sonst NULL-Werte auftreten können, die nicht mitgezählt werden dürfen. Weiterlesen >

Schlagwörter: , , ,

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++)>
...
}

Weiterlesen >

Schlagwörter: , , , ,