何时使用MySQL套接字以及何时使用主机:端口?

许多应用程序允许我使用用户名,密码主机和端口连接到Mysql。 有些允许我configuration一个套接字而不是host:port

有一个明显的好处吗? 我可以想象一个套接字只在MySQL在同一台机器上时才起作用。 是这样吗? 如果是这样,是否有利用这个套接字,而不是连接到localhost:3306

我对networking和套接字的来龙去脉并不太熟悉,所以也许我完全错过了一些重要的信息,而我的问题却很愚蠢。 如果是这样,你能解释我失踪了吗?

那很简单

套接字是基于文件的通信,您不能从另一台机器访问套接字。

另一方面,端口是开放的(取决于configuration),您可以使用主机+端口组合从其他机器访问mysql。

此外,我了解套接字,他们只是在主机+端口,只是在文件格式的组合。 所以,我没有看到任何明确的好处(我的知识就这么多)。

虽然我个人更喜欢使用主机+端口,因为我的代码变得更加灵活,因为我可以将它移动到另一台机器上,而不需要改变太多。

从一些旧post复制粘贴:

因为你没有tcp开销,所以Unix套接字速度要快一些。 如果您意识到这种性能损失是服务器负载的问题。 如果你没有很高的服务器负载,你将无法识别它。

如果您使用Jails(FreeBSD)或其他一些虚拟化技术将Web服务器与MySQL服务器分离,则通常使用tcp / ip设置而不是套接字。 虽然防火墙规则需要限制访问。

你需要知道你的系统是否处于沉重的负载之下,以至于套接字是必须的,或者你可以专注于一个好的系统devise(分离服务),那么TCP / IP解决scheme会更好。

所以请简短地回答一下:

是的,有一个性能差异,套接字更快。 如果你没有承受高服务器负载,只要select适合你的系统devise的东西。