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

Czy szybsze jest łączenie/używanie MySQL na hoście lokalnym zamiast w domenie (nawet jeśli domena jest rozpoznawana na tym samym komputerze)?

Bezpośrednie użycie adresu IP dowolnego interfejsu na hoście lokalnym — interfejsu pętli zwrotnej (127.0.0.1) lub dowolnego innego — jest opcją o absolutnie najlepszej wydajności. Pakiety będą faktycznie kierowane przez interfejs pętli zwrotnej (bez względu na to, który adres IP jest faktycznie używany) z - praktycznie - szybkością procesora.

Istnieją jednak trzy powody, aby preferować 127.0.0.1 nad adresami IP innych interfejsów:

  • Interfejs pętli zwrotnej ma kluczowe znaczenie dla działania systemu i jako taki jest inicjowany bardzo wcześnie w procesie uruchamiania i prawie zawsze dostępny.

  • Nie mają na to wpływu czynniki zewnętrzne:chociaż usunięcie kabla eth0 samo z siebie nie spowoduje przerwania dostępu localhosta do samego siebie za pośrednictwem adresu IP eth0, to będzie zepsuć wszystko, jeśli masz jeden z wielu systemów „autokonfiguracji”, które z radością wyłączą interfejs po utracie łącza.

  • Jeśli masz skonfigurowaną zaporę sieciową, jest całkiem możliwe, że łańcuch reguł jest dłuższy (a tym samym nieco gorszy pod względem wydajności), gdy zaangażowane są adresy IP interfejsów publicznych.

Jeśli używasz nazw hostów, nazwa hosta lokalnego będzie normalnie rozpoznana przez wyszukiwanie /etc/hosts, które jest bardzo szybko, chociaż użycie adresu IP bezpośrednio usuwa to wyszukiwanie. W zależności od konfiguracji wiele z nich jest również buforowanych w pamięci, dzięki czemu później jest prawie oślepiająco szybki.

Jeśli używasz publicznej nazwy hosta, może to wiązać się z zapytaniem DNS, co oznacza dodatkowe użycie procesora i opóźnienie sieci. Użycie buforującego serwera nazw na hoście lokalnym w większości rozwiąże ten problem. Pamiętaj jednak, że nadal może wystąpić problem, jeśli Twoja usługa DNS stanie się niestabilna.

Jedyną zaletą korzystania z publicznej nazwy hosta byłoby to, że jest to coś w rodzaju db.example.com. co pozwala przenieść bazę danych na oddzielny serwer bez konieczności zmiany konfiguracji klientów.

Ponieważ używasz JDBC, zakładam, że ponownie używasz jednego połączenia dla wszystkich swoich zapytań, w którym to przypadku sam narzut dotyczący nazwy hosta powinien być znikomy we wszystkich przypadkach, chyba że masz do czynienia z uszkodzonym serwerem DNS. Jednak wybór adresu 127.0.0.1 ze względu na jego potencjalnie bardziej wydajną konfigurację zapory może być nadal uzasadniony.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak naprawić typowe problemy z bazą danych MySQL?

  2. Jak dodawać komentarze do tabeli lub kolumny w mysql za pomocą SQLAlchemy?

  3. wybierz 30 losowych wierszy, gdzie suma =x

  4. Bardzo proste wprowadzanie danych przez użytkownika w django

  5. phpMyBackupPro — internetowe narzędzie do tworzenia kopii zapasowych MySQL dla systemu Linux