1、索引的建立
createindex user_index on
user(uname);
2、檢視錶中的索引
show indexfrom table_name;
3、刪除索引
dropindex user_index on table_name;
4、使用索引的優點
1、可以通過建立唯一索引或者主鍵索引,保證資料庫表中每一行資料的唯一性;2、建立索引可以大大提高檢索的資料,以及減少表的檢索行數;
3、在表連線的連線條件 可以加速表與表直接的相連;
4、在分組和排序字句進行資料檢索,可以減少查詢時間中分組和 排序時所消耗的時間(資料庫的記錄會重新排序);
5、建立索引,在查詢中使用索引 可以提高效能。
5、使用索引的缺點
1、在建立索引和維護索引 會耗費時間,隨著資料量的增加而增加;2、索引檔案會佔用物理空間,除了資料表需要佔用物理空間之外,每一個索引還會佔用一定的物理空間;
3、當對錶的資料進行 insert,update,delete 的時候,索引也要動態的維護,這樣就會降低資料的維護速度,(建立索引會佔用磁碟空間的索引檔案。一般情況這個問題不太嚴重,但如果你在一個大表上建立了多種組合索引,索引檔案的會膨脹很快)。
6、注意索引的使用
要建立索引,要按照實際資料情況來看,哪些需要建立索引,哪些是多餘的;
1、在經常需要搜尋的列上,可以加快索引的速度;2、主鍵列上可以確保列的唯一性;
3、在表與表的而連線條件上加上索引,可以加快連線查詢的速度;
4、在經常需要排序(order by),分組(group by)和的distinct 列上加索引, 可以加快排序查詢的時間,(單獨order by 用不了索引,索引考慮加where 或加limit);
5、索引不會包含null列,如果列中包含null值都將不會被包含在索引中,複合索引中如果有一列含有null值那麼這個組合索引都將失效,一般需要給預設值0或者 ' '字串;
6、使用短索引,如果你的一個欄位是char(32)或者int(32),在建立索引的時候指定字首長度 比如前10個字元 (前提是多數值是唯一的..)那麼短索引可以提高查詢速度,並且可以減少磁碟的空間,也可以減少i/0操作;
7、不要在列上進行運算,這樣會使得mysql索引失效,也會進行全表掃描。
7、哪些情況下需要建立索引?哪些情況下不要建立索引?
1、主鍵自動建立唯一索引;2、頻繁作為查詢條件的欄位應該建立索引;
3、查詢中與其他表有關聯的欄位,例如外來鍵關係;
4、頻繁更新的欄位不適合建立索引,因為每次更新不單單是更新記錄,還會更新索引,儲存索引檔案;
5、where條件裡用不到的欄位,不建立索引;
6、高併發的情況下一般選擇複合索引;
7、查詢中排序的欄位建立索引將大大提高排序的速度(索引就是排序加快速查詢);
8、查詢中統計或者分組的欄位;
9、表記錄太少,不需要建立索引;
10、經常增刪改的表;
11、資料重複且分佈平均的欄位,因此為經常查詢的和經常排序的欄位建立索引。注意某些資料包含大量重複資料,因此他建立索引就沒有太大的效果,例如性別欄位,只有男女,不適合建立索引。
四 資料庫索引
索引的作用 提高資料查詢效率 常見索引模型 雜湊表 有序陣列 搜尋樹 雜湊表 鍵 值 key value 雜湊思路 把值放在陣列裡,用一個雜湊函式把key換算成一個確定的位置,然後把value放在陣列的這個位置 雜湊衝突的處理辦法 連結串列 雜湊表適用場景 只有等值查詢的場景 有序陣列 按順序儲存。...
mysql資料庫索引(1) 索引
概念 索引是對資料庫中一列或者多列的值進行排序的一種結構,使用索引可以快速訪問資料庫表中的特定資訊,與在表中搜尋所有行相比,索引有助於快速找到資訊。索引的分類 物理層上索引分為聚簇索引和非聚簇索引。聚簇索引 表記錄的排列順序和索引的排列順序一致,所以多個連續查詢的速度較快,只要找到第一個索引值記錄,...
Mysql資料庫索引
b tree索引 1 從左側列開始,不然索引無效 2 不能跳過索引中的列 3 如果查詢中有某個列使用了範圍查詢,那麼這個列右邊的列都不可以使用索引。hash索引 精確匹配索引所有列的查詢才有效 把整行的各個列一起進行hash,得到一個hash code,1 hash索引中只包括hash值和指標,不包...