mysql 學習 部落格 mysql 學習1

2021-10-19 18:25:56 字數 1512 閱讀 5131

show variables like 'long_query_time'   查詢 慢查詢 的時間

set global long_query_time=10000;    更改 慢查詢 的時間

show variables like 'slow%';         查詢 慢查詢的日誌記錄情況

set global slow_query_log=on;        開啟 慢查詢的日誌記錄

日誌在mysql安裝目錄的data下 計算機名+「-slow」

explain的作用是生成乙個qep(查詢執行計畫),可以幫助我們在不真正執行某個sql語句時,就看到mysql怎樣執行,這樣方便我們去分析sql指令的好壞。

執行如下語句

對於返回的資訊,我們主要關心一下幾個

1)    type

all全表掃瞄,通常是不好的,其他的如index、range、const、ref、system則是較好的

2)    possible_keys

可能被用到的索引

3)    key

查詢過程中實際使用的索引,當為null時表示沒有使用索引,通常是不好的

4)    key_len

索引字段最大可能使用的長度,也叫索引基數。索引基數越大,表明可能查詢的行數越多,查詢效率越慢。

5)    rows

mysql 估計的需要掃瞄的行數。只是乙個估計。越多表明查詢的行數越多,自然越慢。

6)    extra

顯示上述資訊之外的其它資訊,非常重要。其主要有一下返回結果。

usingindex

表明此查詢使用了覆蓋索引(coveringindex),即通過索引就能返回結果,無需訪問表。(覆蓋索引是一種非常優秀的索引,其使用見

若沒顯示"usingindex"表示讀取了表資料。

usingindex condition

可能會使用索引

usingwhere

表示 mysql 伺服器先讀取整行資料,再檢查此行是否符合 where 句的條件,符合就留下,不符合便丟棄。效率較慢。

usingfilesort

表示mysql會按查詢所需的順序對結果進行排序,這時就會出現 usingfilesort 。排序自然會增加查詢時間,導致效率變慢。解決方法是利用索引進行排序。若查詢所需的排序與使用的索引的排序一致,因為索引是已排序的,因此按索引的順序讀取結果返回,此時就不會出現using filesort。

裡面是這麼解釋的

簡單的說

using index就是一定使用索引,這種索引成為覆蓋索引,using index condition則是在必要的時候才使用索引

怎樣才能讓usingindex condition變成using index,答案自然是建立乙個覆蓋索引,同樣,筆者將會在之後章節介紹覆蓋索引如何建立。

學mysql是學指令嗎 MySQL命令學習 二

13 where字句操作符 等於 不等於 不等於 大於 大於等於 between 在指定的兩個值之間 例如 找出學號是0007到0009之間的學生記錄 不包括0009 select from student info where stu id between 1001101620007 and 10...

mysql學 如何系統學習 MySQL

很多人喜歡一上來就推薦好幾本書,但是這些書晦澀難懂,對於初學者入門非常不友好。入門只需要一本書就夠了,而不是多本。入門要讓初學者看懂才是最重要的,而不是整那些高大上的東西。為了幫助剛畢業找工作,或者想轉行成為資料分析師工作的朋友,我會用下面內容教會你怎樣用最快速 最容易理解的方式學會資料庫和sql,...

mysql索引怎麼學 mysql學習 索引

在平時開發過程中寫sql時,我們通常都不太關心sql的效能,只有能給查出來資料,sql的執行速度不是太慢就不會去管它了。但是開發時期的資料量往往都不是太大,很多效能問題只有在生產環境中才會發現,如 資料過多 sql關聯了太多的表,使用了太多的join 或者建立了索引,但是索引失效的問題。所以要解決這...