在博客中查看:https://www.zjhuiwan.cn/info/20200414/4008280463194140.html
博客之前文章没有静态化之前是根据id查询的,每次点文章页面都要加载10几秒,体验确实差。
代码没查出问题,就简单的查询也不应该有问题吧。
经过一系列的网页优化后,还把所有文章静态化展示,静态化后确实快了,因为没有再去请求后端获取数据了,再慢我只能说是服务器带宽不给力啊。
没静态化之前是用id去查询文章的,因为其他地方有文章外链所以方法还保留着,今天通过这访问一篇文章的时候等了16秒左右... 正好得空,就经过一番查找然后解决了。
解决办法:
将项目数据库配置文件中数据库的链接地址修改为127.0.0.1
之前写的是直接用服务器ip连接的...
因为本地连的远程库得写ip,部署一直没有改过。
测试了下:
用服务器ip连接数据库
Waiting为15s左右
用localhost连接
Waiting为1.5s左右
用127.0.0.1连接
Waiting为550ms左右
快了很多啊,不止查文章,后台我的一些功能用起来也快了好多啊。
那么为什么修改数据库链接为127.0.0.1 速度就会提升这么大呢?
mysql的配置问题。
由于MYSQL的安全策略的问题,对于每一个连接以及每一个操作,MYSQL都会check当前用户的主机名,so,当我们对数据库进行op的时候,MYSQL数据库服务器都会check一次主机名,这就导致了我们远端操作数据库的客户端出现几秒钟的等待状态,想要取消MYSQL数据库服务器的这种检查机制,就需要修改MYSQL配置文件
解决办法: 在my.cnf文件的[mysqld]后面添加: skip-name-resolve
扩展:localhost和127.0.0.1
127.0.0.1无需解析,localhost还要本地DNS解析,所有127.0.0.1会更快
一、localhost和127.0.0.1的关系:
localhost也叫local ,正确的解释是:本地服务器。
127.0.0.1在Windows等系统的正确解释是:本机地址(本机服务器或回送地址)。
TA们的解析都是通过本机的hosts文件来引导,之后Windows自动将localhost解析为127.0.0.1 。
二、localhost和127.0.0.1的区别
localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。
127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。
一般设置程序时本地服务用localhost是最好的,localhost不会解析成IP,也不会占用网卡、网络资源。
有时候用localhost可以,但用127.0.0.1就不可以的情况就是在于此。猜想localhost访问时,系统带的本机当前用户的权限去访问,而用IP(127.0.0.1)的时候,等于本机是通过网络再去访问本机,可能涉及到网络用户的权限。
本机IP则指你连到网络上的IP地址,可以是内网地址,当然也可能是公网IP,这个就是你实际利用TCP/IP协议与网上计算机通信时使用的IP了。
host文件位置:
修改host文件c://Windows/System32/drivers/etc/hosts