小技巧 顯示資料庫查詢耗時,改善開發者習慣

2021-08-27 19:56:16 字數 1025 閱讀 2167

很多原因都可能導致**執行緩慢,但這其中最常見的就是在

資料庫查詢耗時太多。目前,資料庫查詢可能在網頁渲染過程中起著很重要的作用(網頁上的內容總得從某處獲取),但是有時候 一些不必要的亦或沒有優化好的查詢會影響網頁渲染的速度。

例如:· 查詢的資料根本沒有被使用

· 查詢時未使用索引

· 單次查詢可以實現的功能卻做了多次查詢

· 慢且複雜的查詢

然而有乙個簡單的機制可以間接的預防並且修復此類問題:

用『診斷框』在每乙個網頁顯示資料庫查詢的次數以及消耗的總時間。

下面這個示例是我自己的乙個**(截圖 或者 這個頁面)底部的乙個樣例診斷塊:

request details:

db – queries: 4, time: 5.66 ms

我在所有開發專案以及生產環境(用我的賬號登陸)中都加了類似的診斷框。對於乙個大型**來說,你很可能想當你從辦公室或者vpn訪問**時啟用診斷框。如果你願意的話,診斷框中還可以增加一些更具體的資訊(即將執行的查詢語句以及其它過程花費的時間等等)。

好處

我可以及時的看到是否資料庫導致了網頁載入緩慢。 在生產環境做除錯時這一點尤為有效,因為有些資料庫查詢在生產環境和開發環境中的表現截然不同。

當增加新功能的時候,我可以直觀的感受到新增的資料查詢是否輕量級的。這能幫助我在這個新功能帶來的好處和它在訪問資料時所消耗的時間這兩者之間做乙個 權衡。另外它還可以提醒我有些查詢語句需要手動優化或者做一些緩衝。

當我參加的專案中使用了orm框架時,它能告訴我orm產生的查詢語句是否正是我所期望的。

當刪除乙個功能或者做了一些資料緩衝,我可以通過它來確認查詢數量是否如願有所下降。

尾聲

當然,這些點子不是我發明的,而且有些診斷模式幾乎是每個大型**的常見功能。如果你還沒有用到它們,我強烈建議你花點時間去實現它們。有這樣的乙個『診斷盒』不會使你的**本身變快,但它能在開發人員之間激發一些更好的習慣,並且長期來看,它可能對你的**的速度有巨大的影響!

資料庫小技巧

1.返回第乙個非空數值 select coalesce null,null,null,w3schools.com null,example.com 返回 w3schools.com select coalesce null,1,2,w3schools.com 返回 1 應用 將乙個欄位中空值全部替換...

資料庫使用小技巧

包括安裝時提示有掛起的操作 收縮資料庫 壓縮資料庫 轉移資料庫給新使用者以已存在使用者許可權 檢查備份集 修復資料庫等。一 掛起操作 在安裝sql或sp補丁的時候系統提示之前有掛起的安裝操作,要求重啟,這裡往往重啟無用,解決辦法 到hkey local machine system currentc...

資料庫語句小技巧

工作遇到的花裡胡哨但是很實用的資料庫相關的小技巧 整體原創 一,sql語句獲取某一字段的長度 select length 某一字段 二,行轉列,列轉行 互轉的兩張表結構 sql語句 行轉列 select username,max case subject when 語文 then score els...