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

Czy połączenie z bazą danych powinno być otwarte przez cały czas, czy powinno być otwierane tylko w razie potrzeby?

Połączenie z bazą danych musi być otwierane tylko wtedy, gdy jest potrzebne i zamykane po wykonaniu wszystkich niezbędnych zadań. Przykładowy kod:

  • Przed Javą 7:

      Connection con = null;
      try {
          con = ... //retrieve the database connection
          //do your work...
      } catch (SQLException e) {
          //handle the exception
      } finally {
          try {
              if (con != null) {
                  con.close();
              }
          } catch (SQLException shouldNotHandleMe) {
              //...
          }
      }
    
  • Java 7:

      try (Connection con = ...) {
      } catch (SQLException e) {
      }
      //no need to call Connection#close since now Connection interface extends Autocloseable
    

Ale ponieważ ręczne otwieranie połączenia z bazą danych jest zbyt kosztowne, zdecydowanie zaleca się użycie pula połączeń z bazą danych , reprezentowany w Javie za pomocą DataSource berło. To obsłuży fizyczne połączenia z bazą danych za Ciebie i po zamknięciu to (tj. wywołanie Connection#close ), fizyczne połączenie z bazą danych będzie po prostu w trybie UŚPIENIA i nadal będzie otwarte.

Powiązane pytania/odpowiedzi:

Niektóre narzędzia do obsługi puli połączeń z bazą danych:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy jest coś nie tak ze złączeniami, które nie używają słowa kluczowego JOIN w SQL lub MySQL?

  2. MySQL — ta wersja MySQL nie obsługuje jeszcze podzapytania 'LIMIT &IN/ALL/ANY/SOME

  3. Funkcja konwersji MySQL

  4. Replikacja MySQL i przełączanie awaryjne oparte na GTID — szczegółowe informacje o błędnych transakcjach

  5. MySQL - Jak sumować czasy?