mysql数据库host配置使用localhost和127.0.0.1进行连接的差异浅析

2022-04-03 10:42 栏目:技术开发 查看(7818)

前面我们微构网络发布了《WordPress在部分windows服务器下变得很卡的原因浅析》的文章,里面提到WordPress(数据库采用mysql)从一台linux服务器迁移到另一台windows服务器上后变得很卡,通过溯源调试发现是在使用mysqli_real_connect进行数据库链接是造成的卡。那么mysql数据库host配置使用localhost和127.0.0.1进行链接有什么差异呢。我们通过一组对比测试来进行分享,测试代码还是上一篇文章中提到的代码,也就是采用mysqli_real_connect进行数据库服务器连接。代码如下:

<?php
$t1=microtime(true);
$h=mysqli_init();
$r=mysqli_real_connect( $h, 'localhost', 'root', 'password', null, '3306' );
var_dump($r);
$t2=microtime(true);
var_dump($t2-$t1);

分别分为六组进行测试,分别是linux(localhost)、linux(127.0.0.1)、linux(localhost,删除hosts配置映射)、windows(localhost)、windows(127.0.0.1)、windows(localhost,删除hosts配置映射)。

场景 消耗时长
linux(localhost) 1.8ms
linux(127.0.0.1) 2.8ms
linux(localhost,删除hosts配置) 1.8ms
windows(localhost) 20ms
windows(127.0.0.1) 30ms
windows(localhost,删除hosts配置) 1025ms

需要注意的是,每次计算得到的时间不完全一样,在linux上基本上在几毫秒内(大多数是2ms左右),而在windows上每次测试时间浮动较大,基本上是10-100ms之间(大多数在20-30ms之间)。但是在windows中,修改host删除127.0.0.1 localhost配置后,所花的时间明显增大。

因此,在linux中无论是使用localhost还是127.0.0.1 ,进行数据库连接所花费的时间并没有明显的差别,在感官上是完全感受不到差别的。但在windows上,使用localhost连接,且host中没有127.0.0.1 localhost时,连接所需要时间占到整个请求的绝大部分时长,会非常明显的感觉到卡。

比如如下图是在本地服务器测试windows上使用localhost,且删除hosts配置,网络请求计时情况。而连接所需要的时间就需要1.025秒,其他的网络开销等时间仅仅占绝少数部分。

QQ截图20220402155451

因此,当项目迁移后请求响应时间明显比原来长,而且排除代码逻辑错误后,不妨考虑是否是由于localhost和127.0.0.1造成的差异问题。

与我们的项目经理联系
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流

转载请注明出处:mysql数据库host配置使用localhost和127.0.0.1进行连接的差异浅析 - 微构网络
分享: