mysql數據庫首次查詢緩慢


@

繞了一大圈的問題分析思路

** 缺陷效果表現 **
mysql查詢,沒有緩存的情況下,就是第一次查,特別的慢 然后又正常了,過了一段時間后又特別緩慢

  1. 初始判斷mysql索引等等問題
  2. 然后判斷是不是緩存問題,畢竟表現形式就是第一次慢,后面緩存了快

一開始以為是mySql問題 最后還是未解決問題

索引問題排除   考慮到實際數據並不多不考慮到索引問題
mysql在本地環境下特別快,但是使用遠程的sql就出現問題了

會不會是mysql自動斷開連接所以搜索緩慢 最后還是未解決問題

這種自動斷開無非就是因為無人訪問mysql,mysql有資源保護機制,發現沒人用了就斷開掉節約資源
通過給一個定時任務3分鍾調用一次sql語句實現永久不斷開

發現使用Navicat查遠程mysql庫也很緩慢 最后還是未解決問題

Navicat一直有一個通病,就是時不時卡頓閃退一想到navicat都搜索緩慢時不時數據庫本身有問題

1. 使用在[mysqld]下配置一下屬性方式嘗試解決,實際未解決問題
skip-name-resolve
在linux環境下配置文件是/etc/my.cnf,
windows環境下配置是my.ini文件
做完操作后記得重啟mysql
2. 修改mysql連接方式外網修改內網ip嘗試解決,實際未解決問題
之前一直是用的外網ip連接的數據庫,api和數據庫實際都是在同一個服務器,可以使用內網ip連接mysql

判斷是不是代碼邏輯問題 導致第一次多操作緩慢 最后還是未解決問題

但是第一次代碼雖然會有很多操作 有這種可能性 可是后面存儲了信息之后 走的是緩存的邏輯,只做了一個簡單的查詢判斷接口,
但是這個簡單的接口也特別的慢,這就不是代碼問題的    

發現是建立連接( Initial connection)時巨慢 21s 成功解決問題

在這里插入圖片描述
Initial connection 什么鬼,竟然20多秒

其實測試時就已經發現這個問題了,一直以為是mysql或者其他的問題導致的第一次加載特別慢的原因,
所以沒在意分析具體耗時在哪。
無奈百度,google也沒找到解決方案。
全都是其他的一堆亂七八糟的方案,把我帶偏了

本地localhost訪問一直都很快,顯然不是代碼的問題。ping的了域名發現解析速度也沒有問題。
最后重新給網站換了個域名,結果就解決了。打開阿里雲查看域名解析,
發現自己把兩個IP用在了同一個域名上面導致沖突了
然后果斷刪除其中一個解析,解決了這個賊坑的問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM