sql >> Database teknologi >  >> RDS >> Mysql

Få tællingen af ​​resultater returneret af en MySQL-forespørgsel med JDBC på den mest ydeevneeffektive måde

At lave en separat forespørgsel er ikke en god løsning (efter min mening), fordi serveren vil søge i rækker to gange efter ét resultatsæt.

For at forhindre "dobbelt" forespørgsel MySQL har funktionen FOUND_ROWS(), returnerer den et antal rækker, der er grundlagt for aktuelle forhold fra WHERE klausul. Dette er meget nyttigt, når du bruger LIMIT og OFFSET i forespørgslen. Jeg mener, at brugen af ​​denne funktion er en bedre løsning.http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows

Jeg havde læst for noget tid siden, at JDBC streamer rækker fra serveren, men dette var ikke officiel dokumentation, og jeg kan ikke fortælle, hvordan det fungerer i nutiden, men forespørgsler kan være anderledes - med vanskelige underforespørgsler og joinforbindelser. Jeg tror, ​​at serveren kan afslutte alle ressourcer, hvis de kun vil "streame" disse rækker, når klienten bad om dem.



  1. ANDROID&PHP - Sådan viser du JSONArray fra MySql ved hjælp af PHP

  2. Hvordan finder jeg ud af, om der findes en tabel? MySql

  3. NVL2-funktion i Oracle

  4. CakePHP:Oprettelse af ny HABTM række opdaterer i stedet andre