sql >> Database >  >> RDS >> Mysql

Het aantal resultaten dat wordt geretourneerd door een MySQL-query met JDBC op de meest prestatie-efficiënte manier krijgen

Een aparte zoekopdracht maken is geen goede oplossing (naar mijn mening) omdat de server twee keer in rijen zoekt voor één resultatenset.

Om een ​​"dubbele" zoekopdracht te voorkomen, heeft MySQL de functie FOUND_ROWS(), het retourneert een aantal rijen die zijn gebaseerd op de huidige voorwaarden van WHERE clausule. Dit is erg handig wanneer u LIMIT en OFFSET gebruikt in de query. Ik geloof dat het gebruik van deze functie een betere oplossing is.http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows

Ik had enige tijd geleden gelezen dat JDBC rijen van de server streamt, maar dit was geen officiële documentatie en ik kan niet zeggen hoe het in het heden werkt, maar query's kunnen anders zijn - met moeilijke subquery's en joins. Ik denk dat die server alle bronnen kan voltooien als deze rijen alleen worden "gestreamd" wanneer de klant erom vraagt.



  1. Een Python datetime.datetime-object invoegen in MySQL

  2. Gebruikt Oracle's date'[jjjj-mm-dd]' letterlijk altijd het jjjj-mm-dd patroon?

  3. SMALLDATETIMEFROMPARTS() Voorbeelden in SQL Server (T-SQL)

  4. C# .NET + PostgreSQL