sql >> Databáze >  >> RDS >> Mysql

Je rychlejší připojit/použít MySQL na localhost místo na doméně (i když se doména převádí na stejný počítač)?

Přímé použití IP adresy libovolného rozhraní na localhostu - buď rozhraní zpětné smyčky (127.0.0.1) nebo jakéhokoli jiného - je možnost s absolutně nejlepším výkonem. Pakety budou ve skutečnosti směrovány přes rozhraní zpětné smyčky (bez ohledu na to, která IP je skutečně použita) při - prakticky - rychlosti CPU.

Existují však tři důvody, proč preferovat 127.0.0.1 před IP adresami ostatních rozhraní:

  • Rozhraní zpětné smyčky je klíčové pro provoz systému a jako takové se inicializuje velmi brzy v procesu spouštění a je téměř vždy dostupné.

  • Není ovlivněno vnějšími faktory:i když odstranění kabelu eth0 samo o sobě nepřeruší přístup localhost k sobě samému prostřednictvím IP adresy eth0, bude Pokud máte některý z mnoha "automatických" systémů, které při ztrátě spojení s radostí vypnou rozhraní, zkazte to.

  • Pokud máte nastavenou bránu firewall, je docela možné, že řetězec pravidel je delší (a tedy o něco horší výkon), pokud se jedná o adresy IP veřejných rozhraní.

Pokud používáte názvy hostitelů, název hostitele localhost bude normálně vyřešen pomocí vyhledávání /etc/hosts, což je velmi rychlé, i když použití IP přímo toto vyhledávání zcela odstraní. V závislosti na vašem nastavení je mnoho z nich také uloženo do mezipaměti, takže je později téměř oslnivě rychlé.

Pokud používáte veřejný název hostitele, může to zahrnovat dotaz DNS, který implikuje zvýšené využití procesoru a latenci sítě. Tento problém většinou odstraní použití názvového serveru pro ukládání do mezipaměti na místním hostiteli. Mějte však na paměti, že problém může stále nastat, pokud se vaše služba DNS stane nefunkční.

Jedinou výhodou použití veřejného názvu hostitele by bylo, kdyby to bylo něco jako db.example.com. což vám umožňuje přesunout vaši databázi na samostatný server, aniž byste museli měnit konfiguraci klientů.

Vzhledem k tomu, že používáte JDBC, předpokládám, že pro všechny vaše dotazy znovu používáte jediné připojení, v takovém případě by samotná režie pro překlad názvu hostitele měla být ve všech případech zanedbatelná, pokud se nemusíte vypořádat s nefunkčním serverem DNS. Výběr adresy 127.0.0.1 však může mít stále určitou hodnotu pro její potenciálně efektivnější nastavení brány firewall.



  1. cx_Oracle se nepřipojí při použití SID místo názvu služby v připojovacím řetězci

  2. Efektivní datový model pro dotazy na rozsah

  3. Jak vytvořit synonymum v mysql

  4. VLOŽENÍ MySQL... PŘI AKTUALIZACI DUPLIKÁTNÍHO KLÍČE v Javě:Jak se liší stavy vložení/aktualizace/beze změny