search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

除了不要SELECT * ,數據庫還有哪些技巧(SQL 效率/速度 提升/加快 方法) – jashliao部落格

除了不要SELECT * ,數據庫還有哪些技巧(SQL 效率/速度 提升/加快 方法)


資料來源: https://mp.weixin.qq.com/s?__biz=MzA3ODQ0Mzg2OA==&mid=2649049978&idx=2&sn=b545327c61713aa6fb74b8edeb2f5705&chksm=87534f49b024c65f3104d2b213d3fcd06ce2e1e5eaea2d3e1ca494fa4173ef675adcf13d138e&scene=0&xtrack=1&key=83b29471f317cf4ca211dcee9f4e687f0e73f722f5a2fb84701a9aaefbc7c02a737cbde131ea342b75bc947ece04ecb62d43c2783de922fb8886b6601093a5cd01e968238297998ad44d6b64e715f3d5&ascene=1&uin=MjIwODk2NDgxNw==&devicetype=Windows+10&version=62060833&lang=zh_TW&pass_ticket=2CYGktAt85UHenGl+NhcEMCn/j58I+GTEDhsKptzDfpvaLFvkHWdATPZealgdqGj


程序中嵌入的一行行的SQL語句,如果使用了一些優化小技巧,定能達到事半功倍的效果。


技巧1 比較運算符能用“=”就不用“<>”

    “=”增加了索引的使用機率。


技巧2 明知只有一條查詢結果,那請使用“LIMIT 1”

    “LIMIT 1”可以避免全表掃描,找到對應結果就不會再繼續掃描了。


技巧3 為列選擇合適的數據類型

    能用TINYINT就不用SMALLINT,能用SMALLINT就不用INT,道理你懂的,磁盤和內存消耗越小越好嘛。


技巧4 將大的DELETE,UPDATE or INSERT 查詢變成多個小查詢

    能寫一個幾十行、幾百行的SQL語句是不是顯得逼格很高?然而,為了達到更好的性能以及更好的數據控制,你可以將他們變成多個小查詢。
    


技巧5 使用UNION ALL 代替UNION,如果結果集允許重複的話

    因為UNION ALL 不去重,效率高於UNION。


技巧6 為獲得相同結果集的多次執行,請保持SQL語句前後一致

    這樣做的目的是為了充分利用查詢緩衝。


技巧7 盡量避免使用“SELECT *”

    如果不查詢表中所有的列,盡量避免使用SELECT *,因為它會進行全表掃描,不能有效利用索引,增大了數據庫服務器的負擔,以及它與應用程序客戶端之間的網絡IO開銷。


技巧8 WHERE 子句裡面的列盡量被索引

    只是“盡量”哦,並不是說所有的列。因地制宜,根據實際情況進行調整,因為有時索引太多也會降低性能。


技巧9 JOIN 子句裡面的列盡量被索引

    同樣只是“盡量”哦,並不是說所有的列。


技巧10 ORDER BY 的列盡量被索引

    ORDER BY的列如果被索引,性能也會更好。


技巧11 使用LIMIT 實現分頁邏輯

    不僅提高了性能,同時減少了不必要的數據庫和應用間的網絡傳輸。


技巧12 使用EXPLAIN 關鍵字去查看執行計劃

    EXPLAIN 可以檢查索引使用情況以及掃描的行。
    



熱門推薦

本文由 jashliaoeuwordpress 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦