SELECT COUNT () vs mysql_num_rows ();

Eu tenho uma tabela grande (60+) milhões de registros.

Estou usando o script PHP para navegar por essa tabela.

O script PHP (com paginação) carrega muito rápido porque:

O mecanismo de tabela é o InnoDB,SELECT COUNT() é muito lento emysql_num_rows() não é uma opção, então eu mantenho a contagem total de linhas (o número que eu uso para gerar paginação) em uma tabela separada (eu atualizo este registrototal_rows=total_rows-1 etotal_rows=total_rows1+1 duranteDELETE eINSERT).

Mas a questão é o que fazer com a paginação nos resultados da pesquisa?

Agora eu estou fazendo isso com 2 etapas:

1

$condition = " fname='rinchik' ";
$result = "SELECT * FROM my_large_table WHERE" . $condition;

Aqui eu tenho todos os resultados de pesquisa do DataBase.

2. Agora eu preciso contar esses resultados para criar paginação. Eu estou fazendo isto:

$condition; <- we already have this from the step 1
$result_count = "SELECT COUNT(id) FROM my_large_table WHERE" . $condition;

E é meio lento.

Seria melhor se eu fizesse assim (com apenas um passo) ?:

$condition = " fname='rinchik' ";
$result = "SELECT * FROM my_large_table WHERE" . $condition;
$result_count = mysql_num_rows($result);

questionAnswers(3)

yourAnswerToTheQuestion