前段時間實現某乙個功能,涉及到對資料表的查詢操作,經本地與測試環境測試過後都沒問題,這一過程貌似都很順利,想想是不是要下班了啦(雖然時間好像也不早了),
接著推入正式環境下進行最後的測試(
心想應該不會有什麼問題吧,畢竟就只是對資料的查詢,而且都已經測試過了,資料也完好的輸出)
;最後….
終於還是意想不到的事情發生了。。。
產品那邊說為何為何這麼慢,資料載入不出來。。。
根據產品那邊的反饋,我看了看相關程式,覺得應該沒問題呀,再看看表字段設計,發現了我加的那幾個欄位有的應該要加上索引的但我沒加,加上去了,測試下還是幾乎一樣慢,幾乎資料載入不來。。。
再看了看測試環境下的一些配置檔案與正式環境下的配置對比,也沒發現什麼問題呀,
找問題。。。。
(這時思維貌似是陷進了某個死角。。)
經過主管的細心排查終於發現問題出現在**了。。。
原來是model
底層有個包含所有表名其主鍵的乙個快取檔案搞的鬼(好像是程式執行時沒載入到進行,或者儲存的時候沒儲存成功到該快取檔案),導致程式每一次涉及到對錶的操作是都是重新去伺服器裡去查詢所有表,想想多可怕啊。。。
總結這個事情反應出了以下問題:
1.程式方面的邏輯判斷不夠嚴謹!
體現在如果以上的那個快取檔案載入失敗,或者資料儲存到快取檔案不成功,在日誌裡能夠體現出來,那是不是定位問題所產生的原因是不是更快、更精準了!
2.排查問題的思維方式太過於侷限性!
貌似總是在乙個層面上去思考問題,很難跳出當前的思維模式站在其它的角度去思考問題,這可能是自身的問題!(
思維不夠靈活,或者說經驗不足)
3.對系統底層框架的實現原理不夠深入!
可能在日常的開發中比較繁忙,我們只是停留在使用某乙個方法,並沒有去深入了解它的底層實現原理,
這樣的話出現問題了,搞的就比較被動!
對於以上總結可能還遠遠不夠,但重要的是一定要去閱讀源**!
**片段:
/*** 生成表結構資訊
** @param string $table
* @return
*/public function tableinfo($table)
else }}
$this->fields = $_pk_array;
f('_pk', $_pk_array, 'cache/fields');
}return $this->fields[$table];
}
Vue資料繫結隱藏的神坑
今天被vue的乙個坑給折磨了一天,終於發現是什麼問題,我們先來模擬乙個場景 如下 我們進頁面就點按鈕,你猜會輸出什麼?是undefined,不算奇怪,你什麼都沒輸入,當然是undefined了。ok,接下來重新整理頁面,進去多一步操作,先點選一下input輸入框,在點選按鈕,只是多做這一步操作 輸出...
C 填坑的重寫,過載和隱藏的詳解
目錄 include using std cout using std endl class base base virtual void fun class derived public base derived void funrmkobmf override int main 輸出為 deri...
Linux系統檔案的隱藏屬性
linux系統的檔案除了有普通rwx許可權外還有一種隱藏許可權,例如明明有許可權刪除某個檔案卻報錯了。或者僅能為某個檔案追加內容而不能減少內容,遇到這種很 奇怪 的檔案,就要懷疑是檔案被設定隱藏許可權了。例項 寫入111到test.txt檔案 root localhost pub echo 111 ...