Mysql
 sql >> база данни >  >> RDS >> Mysql

По-бързо ли е да се свържете/използвате MySQL на локален хост вместо домейн (дори ако домейнът се разрешава на същия компютър)?

Директното използване на IP адреса на който и да е интерфейс на локалния хост - или интерфейсът за обратна връзка (127.0.0.1) или който и да е друг - е опцията с абсолютно най-добра производителност. Пакетите действително ще бъдат пренасочени през интерфейса за обратна връзка (без значение кой IP действително се използва) при - на практика - скорост на процесора.

Има обаче три причини да предпочетете 127.0.0.1 пред IP адресите на другите интерфейси:

  • Интерфейсът за обратна връзка е от решаващо значение за работата на системата и като такъв се инициализира много рано в процеса на зареждане и почти винаги е наличен.

  • Не се влияе от външни фактори:докато премахването на eth0 кабела само по себе си няма да прекъсне достъпа на localhost до себе си чрез IP адреса на eth0, то ще объркайте нещата, ако имате някоя от многото системи за "автоматично конфигуриране", които с радост ще изключат интерфейса при загуба на връзка.

  • Ако имате настройка на защитна стена, е напълно възможно веригата от правила да е по-дълга (и следователно малко по-лоша по отношение на производителността), когато са включени IP адресите на публичните интерфейси.

Ако използвате имена на хостове, името на локалния хост обикновено ще бъде разрешено чрез търсене на /etc/hosts, което е много бързо, въпреки че използването на IP директно премахва това търсене напълно. В зависимост от вашата настройка, много от тях също се кешират в паметта, така че по-късно става почти ослепително бърз.

Ако използвате публично име на хост, това може да включва DNS заявка, което предполага допълнително използване на процесора и мрежово забавяне. Използването на кеширащ сървър за имена на локалния хост най-вече ще премахне този проблем. Имайте предвид обаче, че все още може да има проблем, ако вашата DNS услуга стане нестабилна.

Единственото предимство на използването на публично име на хост би било, ако е нещо като db.example.com. което ви позволява да преместите вашата база данни на отделен сървър, без да се налага да променяте конфигурацията на клиентите.

Тъй като използвате JDBC, предполагам, че използвате повторно една връзка за всичките си заявки, като в този случай самото режийно разрешаване на името на хост трябва да бъде незначително във всички случаи, освен ако не трябва да се справите с повреден DNS сървър. Все пак може да има някои заслуги в избора на адрес 127.0.0.1 за потенциално по-ефективната му настройка на защитната стена.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqldump неизвестна опция без звуков сигнал

  2. Преобразувайте съществуващ PHP/MYSQL/ уебсайт в приложения за IOS/Android

  3. Сравняване на времената за отказ на прокси сървъра на базата данни - ProxySQL, MaxScale и HAProxy

  4. Как да възстановите дъмп на MySQL от хост към Docker контейнер

  5. Разликите между INT и UUID в MySQL