Mysql explain 中type 型別說明
首先: explain 的作用:
可以通過explain 去記錄展示 MySQL資料庫執行的的相關引數;進行慢查詢分析優化;
Mysql 中explain中type 型別說明:(級別由低到高,查詢速度越來越快)
ALL --全表掃描,查詢匹配的行,(這個是最慢的)
INDEX-- 使用索引 where 條件中沒有用到索引,但是用索引就能完成掃描全表; 速度有提升;
RANGE ----使用索引範圍掃描,索引範圍掃描,常見於<、<=、>、>=、between等操作符;
REF----使用非唯一性索引或者唯一索引的字首掃描,返回匹配某個單獨值的記錄行; 使用了字首索引
eq_ref--- 相對於ref來說就是使用的是唯一索引,對於每個索引鍵值,只有唯一的一條匹配記錄; 一般用於聯表查詢;
CONST or SYSTEM --- 這個是通過索引很快技能定位到一行匹配的資料,就像一個常量一行(很快);
單表中最多隻有一條匹配行,查詢起來非常迅速,
select * from table_name where tableI_id =' '
table_id 為主鍵索引,或則唯一索引,
NULL --- 這個是sql 語句是不經過表就能返回結果的
select 1 from dual; 不通過表就能查詢到資料。
截圖留念
第二個知識點:
首先是:什麼是索引? 為什麼要建立索引?
建立索引的目的是:加快表的查詢速度,若一張表資料量很小,很快就能找到想要的資訊,這樣就不需要建立索引,隨著表的 資料量增加,這個時候就需要掃描全表,查詢到匹配的資訊,這樣就需要花費更多的時間,這樣索引就出
並且很快就能到資料。
建立索引有兩種方式: Btree Hash; 現在都採用B+ tree;
索引的分類:
|---單列索引
|---普通索引 就是純碎的建立索引,就是為了查詢快一點,可有有空值,可以有重複值;
|---唯一索引 單列的值保證不能重複,但是可以有空值,只能有一個;
|---主鍵索引 特殊的唯一索引,主鍵值不能為空值
|---組合索引
------ 這個多列索引,最主要的有個最左原則;
|---全文索引
------ 這個是myIsam 引擎下的能建立全文索引, 但是欄位必須是varchar clob blog text;