web-dev-qa-db-ja.com

MySQLソケットを使用する場合とHost:portを使用する場合

多くのアプリケーションで、ユーザー名、パスワードのホストとポートを使用してMysqlに接続できます。一部では、Host:portの代わりにソケットを設定できます。

明確なメリットはありますか? MySQLが同じマシン上にある場合にのみソケットが機能することは想像できます。そうですか?もしそうなら、localhost:3306に接続する代わりにそのソケットを使用するよりも利点がありますか?

私はネットワーキングとソケットの詳細についてはあまり詳しくないので、重要な情報を完全に見逃していて、私の質問はまったくばかげています。もしそうなら、私が欠けているものを説明してもらえますか?

19
berkes

まあ、それは簡単です。

ソケットはファイルベースの通信であり、別のマシンからソケットにアクセスすることはできません。

一方、ポートは世界に開かれており(構成によって異なります)、ホストとポートの組み合わせを使用して他のマシンからmysqlにアクセスできます。

また、私が理解しているように、ソケットはファイル形式でのホスト+ポートの組み合わせにすぎません。したがって、これらのいずれかを使用することには明確な利点はありません(私の知識のとおりです)。

私は個人的にはホスト+ポートを使用することを好みますが、コードをより柔軟にするため、ほとんど変更することなく他のマシンに移動できます。

古い投稿からコピーして貼り付けます

Unixソケットはtcp-overheadがないため、少し高速です。このパフォーマンスの低下がサーバー負荷の問題であることがわかった場合。サーバーの負荷が非常に高くない場合は、認識されません。

Jails(FreeBSD)またはその他の仮想化技術を使用して、 WebサーバーのMySQLサーバーでは、ソケットの代わりにtcp/ipセットアップを使用することがよくあります。ただし、ファイアウォールルールはアクセスを制限する必要があります。

ソケットが必須であるか、ニースシステム設計(サービスの分離)に集中できるように、システムの負荷が高いかどうかを確認する必要がある場合は、tcp/ipソリューションの方が適しています。

長い答えを短くしてください:

はい、パフォーマンスの違いがあります。ソケットの方が高速です。サーバーの負荷が高くない場合は、システムの設計により適したものを選択してください。

19
Napster_X