明確にするために:
パブリックホスト名を使用してMySQLデータベースに接続しています。ホスト名はサーバーの外部IP(1.2.3.4など)に解決されます。 MySQL接続を介して送受信しているデータはインターネット経由で送信されていますか?ローカルホストを使用する方が速いでしょうか?サーバーの帯域幅を占有しますか?
確認したい場合は、traceroute 1.2.3.4
を使用できます。これにより、コマンドを実行しているホストと1.2.3.4IPアドレスを持つデバイスの間のすべてのルーターが一覧表示されます。
MySQLサーバーに接続するためのホスト名として「localhost」を使用する場合、MySQLはTCPではなくソケットを使用します。これは、ローカルで実行されているMySQLサーバーに接続するための最速の方法です。
サーバーに外部IPが「適切に」設定されている場合、つまり、サーバーが内部ネットワークのファイアウォールまたはプロキシの背後にない場合、ターゲットIPアドレスが同じシステムであることがわかっているため、トラフィックはサーバーを離れません。
ルーティング機器やスイッチング機器については何も言及していませんが、データが戻ってくる前にデータが外部に出ていることを確認するために邪魔にならないようにすることはできますが、実際には、データがこのように出て行くことはほぼ確実です。
いいえ、すべてが1台のマシン上にある場合、マシンから離れることはありません。
マシンのサーバーIP構成がパブリックIPアドレスを使用している場合、トラフィックはサーバーから出ません(ただし、パフォーマンス上の利点のために、とにかくローカルホストを使用する方が安全です)。
iPがNAT化され、ルーターにパブリックIPがあり、サーバーに内部IPがある場合、ルーターがポートリフレクションを実行すると仮定すると、少なくともトラフィックはサーバーを離れ、ルーターからサーバーにリフレクトされます。ポートフォワーディングの一部-ある意味では、トラフィックはネットワークを離れませんが、一部のトラフィックはサーバーを離れます
ネットワーク設定情報がなければ、それ以上に決定的なものになることはできません
イーサネットケーブルを抜くか、wifiを切断してデータベース接続を試してみると、答えが得られます。大騒ぎも大騒ぎもありません!
結果は異なる場合がありますが、ルーターをインターネットから切断しても、外部アドレスを介してシステムにアクセスできます。ただし、これを行うには、適切な固定IPアドレスを使用してルーターを構成する必要がありました。これは通常、DHCPを介してISPによって発行されるためです。
速度の違いについては、理論的にはlocalhostを使用すると、ネットワークの通過に伴うさまざまなオーバーヘッドがなくなるため、より高速になるはずです。実際には、違いはごくわずかであるため、気付かないはずです。
Traceroute(すでに説明)に加えて、tcpdumpまたはwiresharkを使用して、ホストからルーティングされるmysql接続を監視できます。ローカルホストは常に高速である必要があります。