sql >> Databasteknik >  >> RDS >> Mysql

Få antalet resultat som returneras av en MySQL-fråga med JDBC på det mest prestandaeffektiva sättet

Att göra en separat fråga är inte en bra lösning (enligt mig) eftersom servern kommer att söka rader två gånger efter en resultatuppsättning.

För att förhindra "dubbel" fråga MySQL har funktionen FOUND_ROWS(), returnerar den ett antal rader som grundats för nuvarande villkor från WHERE klausul. Detta är mycket användbart när du använder LIMIT och OFFSET i frågan. Jag tror att det är en bättre lösning att använda den här funktionen.http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows

Jag hade läst för ett tag sedan att JDBC strömmar rader från servern, men detta var inte officiell dokumentation och jag kan inte säga hur det fungerar i nutid, men frågor kan vara olika - med svåra underfrågor och sammanfogningar. Jag tror att servern kan avsluta alla resurser om den "strömmar" dessa rader endast när klienten frågar efter dem.



  1. Hämta veckodagsnamn från indexnummer i MYSQL

  2. Uppdaterar post UTAN att uppdatera tidsstämpel

  3. MySQL Släpp flera kolumner

  4. Skicka en array till en fråga med hjälp av en WHERE-sats