sql >> データベース >  >> RDS >> Mysql

ドメインの代わりにローカルホストでMySQLを接続/使用する方が速いですか(ドメインが同じコンピューターに解決される場合でも)?

    ローカルホスト上の任意のインターフェイス(ループバックインターフェイス(127.0.0.1)またはその他のインターフェイス)のIPアドレスを直接使用することは、絶対的に最高のパフォーマンスを発揮するオプションです。パケットは、実際にはループバックインターフェイスを介して(実際に使用されているIPに関係なく)、実際にはCPU速度でルーティングされます。

    ただし、他のインターフェイスのIPよりも127.0.0.1を優先する理由は3つあります。

    • ループバックインターフェイスはシステムの動作に不可欠であるため、ブートプロセスの非常に早い段階で初期化され、ほとんどの場合利用可能です。

    • 外部要因の影響を受けません。eth0ケーブルを削除しても、ローカルホストがeth0のIPを介してそれ自体にアクセスするのを妨げることはありませんが、 リンクが失われたときにインターフェイスを正常にシャットダウンする多くの「自動構成」システムのいずれかがある場合は、問題が発生します。

    • ファイアウォールを設定している場合、パブリックインターフェイスのIPが関係していると、ルールチェーンが長くなる(したがって、パフォーマンスがわずかに低下する)可能性があります。

    ホスト名を使用している場合、ローカルホストのホスト名は通常、非常にである/etc/hostsルックアップによって解決されます。 IPを使用すると、このルックアップが完全に削除されますが、高速です。設定によっては、多くの場合メモリにキャッシュされるため、後でほとんど目がくらむほど高速になります。

    パブリックホスト名を使用する場合、これには、追加のCPU使用率とネットワーク遅延を意味するDNSクエリが含まれる場合があります。ローカルホストでキャッシングネームサーバーを使用すると、ほとんどの場合、この問題は解消されます。ただし、DNSサービスが不安定になった場合でも、問題が発生する可能性があることに注意してください。

    パブリックホスト名を使用する利点の1つは、db.example.comのようなものである場合です。これにより、クライアントの構成を変更することなく、データベースを別のサーバーに移動できます。

    JDBCを使用しているので、すべてのクエリに単一の接続を再利用していると思います。この場合、壊れたDNSサーバーに対処する必要がない限り、ホスト名解決のオーバーヘッド自体はすべての場合に無視できます。ただし、ファイアウォールのセットアップがより効率的になる可能性があるため、127.0.0.1アドレスを選択することにはまだメリットがあるかもしれません。



    1. ID列を使用してテーブルを作成する方法

    2. LaravelのEloquentORMでピボットテーブルデータで注文する方法

    3. SHOW TABLESを使用してビューではなくテーブルのみを取得するにはどうすればよいですか?

    4. PDO結果の配列ポインタをリセットする