Networking

何時使用 MySQL 套接字以及何時使用主機:埠?

  • June 28, 2021

許多應用程序允許我使用使用者名、密碼主機和埠連接到 Mysql。有些允許我配置套接字而不是host:port.

一個比另一個有什麼明顯的好處嗎?我可以想像一個套接字只有在 MySQL 在同一台機器上時才有效。是這樣嗎?如果是這樣,使用該套接字而不是連接到是否有好處localhost:3306

我對網路和套接字的來龍去脈不太熟悉,所以也許我完全錯過了一些關鍵資訊,而我的問題簡直是愚蠢的;如果是這樣,你能解釋一下我錯過了什麼嗎?

嗯,很簡單。

套接字是基於文件的通信,您無法從另一台機器訪問套接字。

另一方面,埠對世界開放(取決於配置),您可以使用主機+埠組合從其他機器訪問 mysql。

另外,據我所知,套接字只是主機+埠的組合,只是文件格式。因此,我認為使用它們中的任何一個都沒有明顯的好處(據我所知)。

雖然我個人更喜歡使用主機+埠,因為我的程式碼變得更加靈活,因為我可以將它移動到另一台機器上,而無需進行太多更改。

從一些舊文章複製粘貼:

Unix 套接字要快一點,因為您沒有 tcp 成本。如果您意識到這種性能損失是伺服器負載的問題。如果您沒有很高的伺服器負載,您將無法辨識它。

如果您使用 Jails (FreeBSD) 或其他一些虛擬化技術將 MySQL-Server 與 Web 伺服器分開,您通常使用 tcp/ip 設置而不是套接字。防火牆規則需要限制訪問。

您需要確定您的系統是否處於重負載狀態,以便必須使用套接字,或者您可以專注於良好的系統設計(分離服務),那麼 tcp/ip 解決方案會更好。

所以做一個簡短的回答:

是的,存在性能差異,套接字更快。如果您的伺服器負載不高,只需選擇更適合您的系統設計的即可。

引用自:https://serverfault.com/questions/466155