sql >> Databasteknik >  >> RDS >> Mysql

Går det snabbare att ansluta/använda MySQL på localhost istället för en domän (även om domänen löser sig till samma dator)?

Att direkt använda IP-adressen för vilket gränssnitt som helst på den lokala värden - antingen loopback-gränssnittet (127.0.0.1) eller något annat - är alternativet med absolut bästa prestanda. Paketen kommer faktiskt att dirigeras genom loopback-gränssnittet (oavsett vilken IP som faktiskt används) med - praktiskt taget - CPU-hastighet.

Det finns dock tre skäl att föredra 127.0.0.1 framför IP-adresserna för de andra gränssnitten:

  • Loopback-gränssnittet är avgörande för driften av systemet och som sådant initieras det mycket tidigt i uppstartsprocessen och nästan alltid tillgängligt.

  • Den påverkas inte av externa faktorer:medan borttagning av eth0-kabeln inte i sig själv kommer att avbryta localhosts åtkomst till sig själv via eth0:s IP, den kommer förstöra saker och ting om du har något av de många "autokonfigurations"-systemen som med glädje kommer att stänga av gränssnittet vid förlust av länk.

  • Om du har en brandväggsinstallation är det mycket möjligt att regelkedjan är längre (och därmed något sämre prestandamässigt) när IP-adresserna för de offentliga gränssnitten är inblandade.

Om du använder värdnamn kommer värdnamnet för localhost normalt att lösas av en /etc/hosts-sökning som är mycket snabbt, även om användning av IP direkt tar bort denna uppslagning helt och hållet. Beroende på din inställning cachelagras många också i minnet så att det är nästan bländande snabbt senare.

Om du använder ett offentligt värdnamn kan detta innebära en DNS-fråga som innebär ökad CPU-användning och nätverkslatens. Att använda en cachande namnserver på den lokala värden kommer för det mesta att ta bort det här problemet. Tänk dock på att det fortfarande kan finnas ett problem om din DNS-tjänst blir ojämn.

Den enda fördelen med att använda ett offentligt värdnamn skulle vara om det är något som db.example.com. som låter dig flytta din databas till en separat server utan att behöva ändra konfigurationen av klienterna.

Eftersom du använder JDBC antar jag att du återanvänder en enda anslutning för alla dina frågor, i vilket fall bör värdnamnslösningen i sig själv vara försumbar i alla fall, såvida du inte har att göra med en trasig DNS-server. Det kan dock fortfarande vara fördelaktigt att välja 127.0.0.1-adressen för dess potentiellt mer effektiva brandväggsinstallation.



  1. Hur genererar man en trädvy från denna resultatuppsättning baserat på Tree Traversal Algorithm?

  2. EF6 med MySQL. Den angivna nyckeln fanns inte i ordboken

  3. Konvertera avgränsad sträng till rader i oracle

  4. Hur ORIGINAL_DB_NAME() fungerar i SQL Server