【Python入門教程】五個常見的最佳化SQL的技巧!
程式設計人員一定不陌生SQL語句吧,在我們日常寫專案過程中,或多或少都會使用到SQL,SQL主要功能有增刪改查,其中最常見的就是查詢了,因此SQL語句的效能就變得至關重要,如何最佳化SQL呢?請看下文:
一、分解SQL
當我們遇到一個較複雜的SQL時,可以選擇將它拆分成多個簡單的SQL,這樣既能保證處理結果,SQL也更簡短了。
在面對超級複雜SQL語句時,效能提升尤為明顯,推薦分解為小查詢來進行最佳化,不過在應用設計時,如果一個查詢能解決問題且不會產生效能問題,這是完全沒問題的。
分解可以使快取更高效,可以很方便地快取單表查詢結果對應的結果,執行單個查詢也可以減少表鎖的競爭,在程式應用層做關聯,更容易對資料庫進行拆分,也更容易做到高效能和可擴充套件。
二、查詢切分
遇到結果集很大的查詢,我們可以採用“分而治之”的思想,即將大查詢切分為小查詢,每個查詢功能完全一樣,只是各自完成一小部分,每次只返回一小部分的查詢結果,類似於分頁查詢。
查詢切分不管是對於SQL查詢本身,還是對於上層業務來說,都是很小的開銷。
三、執行計劃
使用EXPLAIN關鍵字,可以讓我們知道MYSQL是如何執行SQL語句的,可以幫助我們分析我們的查詢語句或是表結構的效能瓶頸,EXPLAIN的查詢結果還會告訴我們索引主鍵是如何被利用的,資料表示如何被搜尋或排序的等等。
四、遵守原則
在我們平時寫SQL時,養成良好習慣就可以很大程度上避免一些SQL效能問題。盤點以下幾點:
a. 永遠為每張表設定一個ID主鍵;
b. 避免使用SELECT *;
c. 為搜尋欄位建立索引;
d. 在Join表時使用對應型別的列,並將其索引;
e. 儘可能使用NOT NULL;
五、使用查詢快取
當有很多相同查詢被執行多次時,這些結果往往會被放入一個快取中,這樣後續的相同查詢就不用操作而直接訪問快取結果了。
MySQL查詢快取儲存查詢返回的完整結果。當查詢命中該快取,MySQL會like返回結果,跳過了解析、最佳化和執行截斷。
這是提高查詢效能最有效的方法之一,而且這是被MySQL引擎處理的,通常MySQL預設是不開啟查詢快取的,需要手動開啟。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2912926/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python開發的入門教程(五)-setPython
- Python入門——變數和常見的運算子Python變數
- 程式設計師必知必會:MySQL上15個常見SQL最佳化技巧程式設計師MySql
- SQL教程——常見的約束型別SQL型別
- SQL教程——常見的資料型別SQL資料型別
- 最適合入門的 Laravel 入門教程 (五)Laravel
- 10道常見的Python面試題及答案!Python入門必看Python面試題
- Docker常見面試題及答案!Linux入門教程Docker面試題Linux
- Python學習常見的錯誤有哪些?Python基礎入門Python
- 五個最有用的Python技巧 - dannysteenmanPython
- 常見的Python五大直譯器!Python
- Python中的Numpy入門教程Python
- Android入門(五):實踐技巧Android
- 最佳化SQL Server索引的技巧SQLServer索引
- 網站轉化率不高的五個常見原因網站
- python實現常見的五種排序演算法Python排序演算法
- Python 常見的17個錯誤分析Python
- SQL入門-進階教程SQL
- python 入門教程Python
- 常見指標型別入門指標型別
- 新手入門 Golang 常見問題Golang
- RxJava 入門和常見使用方式RxJava
- 【Python入門教程】SQL和Python有什麼區別?PythonSQL
- python 入門常識Python
- 18 個 JavaScript 入門技巧!JavaScript
- sql最佳化技巧SQL
- 常見的錯誤 SQL 用法SQL
- 幾種常見的NO SQL DBSQL
- 使用Python時常見的9個錯誤Python
- 第36講:App 逆向的常見技巧APP
- Python爬蟲五大零基礎入門教程Python爬蟲
- 你知道python常見的庫有哪些嗎?五大python庫Python
- XML入門常見問題(3)(轉)XML
- XML入門常見問題(2)(轉)XML
- XML入門常見問題(1)(轉)XML
- python OpenCV 入門教程PythonOpenCV
- Python NLP入門教程Python
- 推薦 7 個 Python 入門視訊教程Python