qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          小技巧:顯示數據庫查詢耗時,改善開發者習慣

           我會分享一系列在我開發生涯中積累的有用且容易實現的小技巧,本文是此系列的第一篇。
            很多原因都可能導致網站運行緩慢,但這其中最常見的就是在數據庫查詢耗時太多。目前,數據庫查詢可能在網頁渲染過程中起著很重要的作用(網頁上的內容總得從某處獲取),但是有時候 一些不必要的亦或沒有優化好的查詢會影響網頁渲染的速度。
            例如:
            查詢的數據根本沒有被使用
            查詢時未使用索引
            單次查詢可以實現的功能卻做了多次查詢
            慢且復雜的查詢
            然而有一個簡單的機制可以間接的預防并且修復此類問題:
            用‘診斷框’在每一個網頁顯示數據庫查詢的次數以及消耗的總時間。
            下面這個示例是我自己的一個網站(截圖 或者 這個頁面)底部的一個樣例診斷塊:
            Request Details:
            DB – Queries: 4, Time: 5.66 ms
            我在所有開發項目以及生產環境(用我的賬號登陸)中都加了類似的診斷框。對于一個大型網站來說,你很可能想當你從辦公室或者VPN訪問網站時啟用診斷框。如果你愿意的話,診斷框中還可以增加一些更具體的信息(即將運行的查詢語句以及其它過程花費的時間等等)。
            好處
            我可以及時的看到是否數據庫導致了網頁加載緩慢。 在生產環境做調試時這一點尤為有效,因為有些數據庫查詢在生產環境和開發環境中的表現截然不同。
            當增加新功能的時候,我可以直觀的感受到新增的數據查詢是否輕量級的。這能幫助我在這個新功能帶來的好處和它在訪問數據時所消耗的時間這兩者之間做一個 權衡。另外它還可以提醒我有些查詢語句需要手動優化或者做一些緩沖。
            當我參加的項目中使用了ORM框架時,它能告訴我ORM產生的查詢語句是否正是我所期望的。
            當刪除一個功能或者做了一些數據緩沖,我可以通過它來確認查詢數量是否如愿有所下降。
            尾聲
            當然,這些點子不是我發明的,而且有些診斷模式幾乎是每個大型網站的常見功能。如果你還沒有用到它們,我強烈建議你花點時間去實現它們。有這樣的一個‘診斷盒’不會使你的網站本身變快,但它能在開發人員之間激發一些更好的習慣,并且長期來看,它可能對你的網站的速度有巨大的影響!

          posted on 2014-10-17 12:50 順其自然EVO 閱讀(429) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2014年10月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 垣曲县| 清原| 军事| 兴业县| 磐石市| 泾川县| 鹰潭市| 淮安市| 灵武市| 凤城市| 衡阳市| 安康市| 富民县| 威信县| 左贡县| 南投县| 永泰县| 江都市| 晋江市| 内乡县| 梅州市| 博罗县| 新蔡县| 颍上县| 瓦房店市| 翁牛特旗| 和平县| 清水河县| 台山市| 启东市| 龙里县| 涟水县| 威远县| 察哈| 大丰市| 长泰县| 米易县| 黔江区| 凤冈县| 隆昌县| 垫江县|