mysql複習第十九天 索引(一)

2021-10-03 03:26:45 字數 2189 閱讀 1147

排好序的快速查詢資料結構

1、單值索引:即乙個索引包含單個列;

2、唯一索引:索引列的值必須唯一,但允許有空值;

3、復合索引:即乙個索引包含多個列;

建立語法:

create [unique] index indexname on tablename(columnname(length));
alter tablenameadd [unique] index [indexname] on (columnname(length));
刪除:

drop index [indexname] on tablename;
檢視:

show index from table;
1、主鍵自動建立唯一索引;

2、頻繁作為查詢條件的字段;

3、頻繁更新的字段不適合建立索引,因為更新不單單更新了記錄還會更新索引,加重io負擔;

4、單鍵/組合索引的選擇,高併發傾向組合索引;

5、查詢統計或分組字段;

6、表記錄少不要建立索引;

7、經常增刪改的表不要建立索引,提高了查詢速度,同時會降低更新表的速度,對錶進行insert,update和delete,mysql不僅要儲存資料還要儲存索引檔案;

8、資料重複且分布均勻的表字段建立索引意義不大;

4.1、檢視sql執行計畫;
explain + sql語句;

4.2、執行計畫包含的資訊;

id相同:執行順序從上之下;

id不同:id值越大優先順序越高,越先被執行;

******:簡單select查詢;

premary:如果包含複雜查詢部分,最外層 查詢被標記;

subquery:在select或where中包含了子查詢;

derived:子查詢被標記為臨時表;

union:若第二個select出現在union之後,則被標記為union;若union包含在from子句的子查詢中,外層select將被標記為union;

union result:從union表獲取結果的select

system:表中只有一條資料;

const:通過索引一次即找到,用於比較primary和unique索引;

eq_ref:唯一索引掃瞄,對於每個索引鍵,表中只有一條資料匹配;

ref:非唯一索引建,返回匹配某個單獨值的所有行;

rang:只檢索給定範圍的行,使用乙個索引來選擇行;

index:全表掃瞄,只不過是從索引中讀取的,比all快;

all:全表掃瞄,從硬碟讀取;

system>const>eq_ref>ref>rang>index>all

using filesor:mysql使用外部索引,而沒有用到自建的索引

using temporary:mysql使用了臨時表儲存中間資料,常見於group by,order by

using index:表示在select中使用了覆蓋索引,表示資料全部從索引中查詢到了,效率不錯,如果同時出現using where,表示索引被用來執行索引鍵值的查詢,如果沒有同時出現,表示索引用來讀取資料而非執行查詢動作

using where:表明使用了where過濾;

using join buffer:使用了連線快取;

impossible where:where語句沒有效果;

select tables optimized away:select操作已經優化到不能再優化了(mysql根本沒有遍歷表或索引就返回資料了)

distinct:優化distinct,在找到第一行匹配的資料之後停止查詢相同值的動作;

解決%開頭,使用復合索引,索引包含查詢條件列即可

冥想第十九天

不能怪自己多心,畢竟出現不舒服的感覺是因為大腦太關切自己的身體了。一點也不想讓它受刺激。今天出來玩了,早上做了體檢。又帶著小妞妞出來打了預防針,後又跟著朋友出來滎陽南嶺玩了,到時有點困,告訴自己要接受,好好接受當下 但不反抗,知道是正常的。坐上車後睡了一會,所有的精力都回來了。當和朋友一起回來的時候...

ACM 第十九天

積性函式o n 線性篩,篩素數,u n 尤拉函式 n n 1 vis 0 vis 1 1,mu 1 1,phi 1 1 2 for rg int i 2 i n i 7else mu k mu i phi k phi i phi prime j 8 9 可以發現,線性篩分為3部分 1.n本身是素數,...

PYTHON小白 第十九天

python小白 第十九天 1 異常概述 異常機制己經成為衡量一門程式語言是否成熟的標準之一,使用異常處理機制的python程式有更好的容錯性,更加健壯。2 異常處理機制 python的異常處理機制可以讓程式具有極好的容錯性,讓程式更加健壯。當程式執行出現意外情況時,系統會自動生成error物件來通...