Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Obtendo a contagem de resultados retornados por uma consulta MySQL com JDBC da maneira mais eficiente em desempenho


Fazer uma consulta separada não é uma boa solução (na minha opinião), porque o servidor pesquisará linhas duas vezes para um conjunto de resultados.

Para evitar a consulta "dupla" o MySQL tem a função FOUND_ROWS(), ele retorna um número de linhas fundadas para as condições atuais de WHERE cláusula. Isso é muito útil quando você usa LIMIT e OFFSET na consulta.Acredito que usar essa função é uma solução melhor.http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows

Eu tinha lido algum tempo atrás que o JDBC transmite linhas do servidor, mas isso não era documentação oficial e não posso dizer como funciona no presente, mas as consultas podem ser diferentes - com subconsultas e junções difíceis. Eu acho que o servidor pode terminar todos os recursos se "transmitir" essas linhas apenas quando o cliente as solicitar.