在博客中查看: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