Mysql查詢優化——Explain使用
The palest ink is better than best memory——好記性不如爛筆頭。2012補記 一、關鍵詞 SQL優化、執行計劃、explain、using filesort、using temporary 二、摘要 開發中,為滿足一業務功能,使用mysql書寫sql時,一條s […]
-->
程式前沿 幫助程式設計師解決問題,增加專業技能,提升個人能力與未來世界競爭力。
The palest ink is better than best memory——好記性不如爛筆頭。2012補記 一、關鍵詞 SQL優化、執行計劃、explain、using filesort、using temporary 二、摘要 開發中,為滿足一業務功能,使用mysql書寫sql時,一條s […]
派生表和檢視的效能 從MySQL 4.1開始,它已經支援派生表、聯機檢視或者基本的FROM從句的子查詢。 這些特性之間彼此相關,但是它們之間的效能比較如何呢? MySQL 5.0 中的派生表似乎和檢視實現的方式不同,儘管我從合併的程式碼基數來看覺得在查詢優化上應該是一樣的。 派生表仍然以臨時表的方式 […]
EXPLAIN列的解釋: table:顯示這一行的資料是關於哪張表的 type:這是重要的列,顯示連線使用了何種型別。從最好到最差的連線型別為const、eq_reg、ref、range、indexhe和ALL possible_keys:顯示可能應用在這張表中的索引。如果為空,沒有可能的索引。可以 […]
key_len列顯示MySQL決定使用的鍵長度。如果鍵是NULL,則長度為NULL。注意通過key_len值我們可以確定MySQL將實際使用一個多部關鍵字的幾個部分。ref列顯示使用哪個列或常數與key一起從表中選擇行。rows列顯示MySQL認為它執行查詢時必須檢查的行數。Extra該列包含MyS […]
當面對一個有SQL效能的資料庫時,我們可以從以下步驟來對資料庫進行分析。 1.通過show status命令瞭解各種SQL的執行頻率 MySQL客戶端連線成功後,通過show [session | glo […]
在mysql得使用中,查詢效率低下,除cpu,io或硬體得限制外,作為java程式設計師我們主要關注得還是sql得優化。 使用 EXPLAIN 檢視sql執行計劃 它可以做什麼 1.表得讀取順序 2.資料讀取操作得操作型別 3.哪些索引可以使用 4.哪些索引被 […]
使用explain關鍵字可以模擬優化器執行SQL查詢語句,從而知道MySQL是如何處理你的SQL語句的,分析你的查詢語句或是表結構的效能瓶頸。 explain執行計劃包含的資訊 其中最重要的欄位為:id、type、key、rows、Extra 各欄位詳解 id select查詢的序列號,包含一組數字 […]
執行計劃能告訴我們什麼? 當我們的系統上線後資料庫的記錄不斷增加,之前寫的一些SQL語句或者一些ORM操作效率變得非常低。我們不得不考慮SQL優化,SQL優化大概是這樣一個流程:1.定位執行效率低的SQL語句(定位),2.分析為什麼這段SQL執行的效率比較低(分析),3.最後根據第二步分析的結構採取 […]
explain主要用於sql語句中的select查詢,可以顯示的檢視該sql語句索引的命中情況,從而更好的利用索引、優化查詢效率。 Explain語法如下:explain [extended] select … 其中extended是選用的,如果使用 […]
explain顯示了mysql如何使用索引來處理select語句以及連線表。可以幫助選擇更好的索引和寫出更優化的查詢語句。 使用方法,在select語句前加上explain就可以了。如: mysql> explain select * from kt_course order by creat […]