Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Uzyskanie liczby wyników zwróconych przez MySQL Query z JDBC w najbardziej wydajny sposób

Tworzenie oddzielnego zapytania nie jest dobrym rozwiązaniem (moim zdaniem), ponieważ serwer dwukrotnie przeszuka wiersze dla jednego zestawu wyników.

Aby zapobiec "podwójnemu" zapytaniu, MySQL posiada funkcję FOUND_ROWS(), zwraca liczbę wierszy znalezionych dla bieżących warunków z WHERE klauzula. Jest to bardzo przydatne, gdy w zapytaniu używasz LIMIT i OFFSET. Uważam, że użycie tej funkcji jest lepszym rozwiązaniem.http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows

Czytałem jakiś czas temu, że JDBC przesyła wiersze z serwera, ale nie była to oficjalna dokumentacja i nie mogę powiedzieć, jak to działa w chwili obecnej, ale zapytania mogą być różne - z trudnymi podzapytaniami i złączeniami. Myślę, że serwer może zakończyć wszystkie zasoby, jeśli „prześle strumieniowo” te wiersze tylko wtedy, gdy klient o to poprosi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest typ danych dla unix_timestamp (MySQL)?

  2. Potrzebujesz pomocy w tworzeniu dynamicznego menu

  3. Przechowywanie daty, w której znany może być tylko rok

  4. Jak utworzyć niestandardową kolumnę ze znakami automatycznego zwiększania?

  5. Logika warunków WHERE AND/OR w MySQL wielokrotna