在本地电脑上搭建过WordPress环境的站长应该有过这样的体验,明明在服务器上响应很快的网站在本地怎么就那么慢呢?看完这篇刚写的localhost与127.0.0.1对WordPress数据库连接速度的影响,本地搭建的环境速度也很快!
要知道,动态网站中,数据库的响应速度决定了前端的用户体验,也就是说数据库响应时间越长,浏览器中的TTFB时间就越长,打开网页的时间也越长。提高数据库响应速度也是网站优化中必不可少的步骤,常见的办法是使用MySQL高速缓存启动query cache的方法来减少查询次数,并将查询结果存在内存中,以便下次使用。
为了直观的看到PHP连接数据库消耗的时间,我写了个PHP文件,运行这个文件将会显示具体耗时,内容如下:
<?php //计时开始 runtime(); //执行查询 connectmysql(); //计时结束. echo runtime(1); //计时函数 function runtime($mode=0) { static $t; if(!$mode) { $t = microtime(); return; } $t1 = microtime(); list($m0,$s0) = explode(" ",$t); list($m1,$s1) = explode(" ",$t1); return sprintf("%.3f ms",($s1+$m1-$s0-$m0)*1000); } //连接数据库 function connectmysql(){ $servername="localhost"; //数据库地址,测试127.0.0.1与localhost的区别 $sqluser="数据库账号"; $sqlpass="数据库密码"; $conn=@mysqli_connect($servername,$sqluser,$sqlpass); return $conn; } ?>
测试结果
localhost连接方式耗时:1001.000 ms
127.0.0.1连接方式耗时:1ms
访问WordPress网站首页耗时测试
localhost连接方式耗时:
127.0.0.1连接方式耗时:
我以为能大幅提升网站的响应速度,其实不然,同样的代码在Linux环境中的响应速度并没有Windows的区别明显。实测,代码狗博客的连接耗时0.3ms左右,首页ttfb耗时300-400ms左右,也就是说WordPress的作业机制消耗300多毫秒。
从上面的数据来看,在本地情况下,mysql的连接速度几乎等于TTFB时间。如果你在Windows本地电脑上使用的话,改成127.0.0.1将会体验到飞一般的感觉!
总结
在Linux环境中,localhost与127.0.0.1对数据库的影响几乎没有区别,但是据网友所说127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。也有网友说两者都不经过网卡,我比较信任第二种。localhost不受限制,在消耗网络资源的服务器中,使用localhost更加恰当!
在本地环境中,建议使用127.0.0.1的方式连接数据库,可以大幅度提升速度,本地体验极佳!