MySQL SQL_CALC_FOUND_ROWS para desempenho de paginação

Em vez de fazer 2 consultas para obter os resultados e o número de resultados possíveis para uma paginação no MySQL, você pode usar o SQL CALC FOUND_ROWS.

SELECT SQL_CALC_FOUND_ROWS id, name, slug, created
FROM your_table

WHERE slug
= 'valid_slug'
LIMIT
0, 25

A consulta acima retornará 25 resultados conforme o esperado e, para simplesmente obter o número total de resultados possíveis, tudo o que você precisa fazer é:

SELECT FOUND_ROWS();

Apenas uma observação : isso é ótimo para paginação, pois aumenta um pouco o desempenho, mas para uma consulta normal pode não ser uma boa opção.

SQL CALC FOUND_ROWS força o MySQL a procurar TODAS as linhas correspondentes, mesmo que elas nunca sejam buscadas. Internamente, isso equivale à execução da mesma consulta sem a cláusula LIMIT.

Há muitas informações boas aqui: http://dev.mysql.com/doc/refman/5.0/en/information-functions.html