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

MySQL — połączenie trwałe a pula połączeń

Posiadanie trwałych połączeń nie oznacza, że ​​wszystkie wątki używają tego samego połączenia. Po prostu „mówi”, że utrzymujesz otwarte połączenie (w przeciwieństwie do otwierania połączenia za każdym razem, gdy jest potrzebne). Otwarcie połączenia jest kosztowną operacją, więc generalnie starasz się unikać otwierania połączeń częściej niż to konieczne.

To jest powód, dla którego aplikacje wielowątkowe często korzystają z pul połączeń. Pula zajmuje się otwieraniem i zamykaniem połączeń, a każdy wątek, który potrzebuje połączenia, żąda jednego z puli. Ważne jest, aby uważać, aby wątek jak najszybciej zwracał połączenie do puli, aby inny wątek mógł z niego korzystać.

Jeśli Twoja aplikacja ma tylko kilka długo działających wątków, które wymagają połączeń, możesz również otworzyć połączenie dla każdego wątku i pozostawić je otwarte.

Używanie tylko jednego połączenia (tak jak to opisałeś) jest równe puli połączeń o maksymalnym rozmiarze. Prędzej czy później stanie się to twoim wąskim gardłem, ponieważ wszystkie wątki będą musiały poczekać na połączenie. Może to być opcja serializacji operacji bazy danych (wykonywania ich w określonej kolejności), chociaż istnieją lepsze opcje zapewniające serializację.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapisać tablicę PHP do MySQL?

  2. Jak wywołać procedurę składowaną mysql z argumentami z wiersza poleceń?

  3. Jak wybrać jedną z dwóch tabel w MySQL, nawet jeśli nie wszystkie wiersze w jednej tabeli mają korespondentów w drugiej?

  4. Jaka jest alternatywa klauzuli LIMIT w JPQL?

  5. Jak przenieść model między dwiema aplikacjami Django (Django 1.7)