当我连接到PHP中的mysql数据库,并且db与站点本身在同一台机器上托管时,我可以使用机器的IP,或127.0.0.1
两者之间的表现有差异吗?有什么时候我应该使用127.0.0.1?
答案 0 :(得分:3)
如果要连接到本地计算机,则应始终使用localhost
或127.0.0.1
,因为服务器可能拒绝访问任何其他界面。此外,当IP发生变化时,您需要做大量的工作来改变您放置在某处的IP的每一次出现。
然而,环回地址应该稍快一点,但我想没人能以可靠的方式测量它,因此:你不应该在意。无论如何,当您使用环回时(如上所述),那么您就安全了。
答案 1 :(得分:2)
两个请求最终都会在进入接口之前访问内核路由表。除非环回地址具有内核内优化,否则不应有任何影响。
答案 2 :(得分:2)
通过127.0.0.1进行连接可能会有极小的(不明显的)性能优势,因为连接时不需要检查多少防火墙/路由规则。
如果您有选项,请通过unix域套接字连接(通常类似于/tmp/mysql.sock
)。通过这种方法连接可以提高性能,并提高安全性。
修改强>
根据MarcB的评论,显然通过localhost
连接会自动尝试通过域套接字进行连接。如上所述,这是首选且性能最佳的方法,
答案 3 :(得分:0)
除非服务器上有一些非常奇怪的网络配置,否则性能应该相同。
至于准则,这取决于,如果您的数据库服务器将来可能会发生变化,您可能应该将该URL存储在某个xml文件或任何文件中,以便应用程序可以在以后读取该配置。通过这样做,您不必担心使用任何IP甚至主机名或localhost。你甚至可以尝试研究DynamicDns。
如果服务器不太可能改变,那么不要太担心。如果服务器ip发生变化,请使用'localhost'而不是任何ip。文件选项仍然是一个很好的做法,但如果你不使用它,它不会对你造成太大伤害。