補充:
1.unique(要求列唯一) 和 primary key(主鍵唯一) 約束均為列或列集合提供了唯一性的保證。
primary key (主鍵)擁有自動定義的 unique 約束。2.其他索引型別:並且:每個表可以有多個 unique 約束,但是每個表只能有乙個 primary key 約束。
normal:普通索引,大多數情況下都可以使用。3.mysql中常用兩種索引演算法full text:表示全文收索,在檢索長文字的時候,效果最好,短文本建議使用index,但是在檢索的時候資料量比較大的時候,現將資料放入乙個沒有全域性索引的表中,然後在用create index建立的full text索引,要比先為一張表建立full text然後在寫入資料要快的很多 。
btree:btree索引是最常用的mysql資料庫索引演算法,因為它不僅可以被用在=,>,>=,<,<=和between這些比較操作符上,而且還可以用於like操作符,只要它的查詢條件是乙個不以萬用字元開頭的常量,4.索引的優缺點例如:
select * from user where name like 'jack%';
select * from user where name like 'jac%k%';
hash:hash索引只能用於對等比較,例如=,<=>(相當於=)操作符。由於是一次定位資料,不像btree索引需要從根節點到枝節點,最後才能訪問到頁節點這樣多次io訪問,所以檢索效率遠高於btree索引。 但是弊端也很多,所以使用btree遠多於hash。
優點:1.通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。
2.可以大大加快資料的檢索速度,這也是建立索引的最主要的原因。
3.可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義。
4.在使用分組和排序子句進行資料檢索時,同樣可以顯著減少查詢中分組和排序的時間。
5.通過使用索引,可以在查詢的過程中,使用優化隱藏器,提高系統的效能。
缺點:1.建立索引和維護索引要耗費時間,這種時間隨著資料量的增加而增加。
2.索引需要佔物理空間,除了資料表佔資料空間之外,每乙個索引還要佔一定的物理空間,如果要建立聚集索引那麼需要的空 間就會更大。
3.當對表中的資料進行增加、刪除和修改的時候,索引也要動態的維護,這樣就降低了資料的維護速度。
因為索引非常佔記憶體,所以索引也需要謹慎新增,那些字段需要索引。
五 HashMap 索引計算
從hashmap原始碼中,可以看到求容器下標值的方法,有兩步,首先通過key值計算hash,然後用hash計算下標 計算hash return key null 0 h key.hashcode h 16 計算下標,其下標值為 n 1 hash n tab resize length p tab i...
mysql 鍵 索引 五 MySQL索引和鍵
mysql索引和鍵 不同的索引有不同功能 不同的約束方式,不同的使用規則 優點 對一張表來說,索引就像一本書的目錄,能夠加快查詢速度 缺點 占用物理儲存空間 索引資訊儲存在表對應的檔案裡 會降低插入 更新表記錄的速度 insert delete update 1.索引的型別 普通索引 index 唯...
雙索引 mysql (五)MySQL兩表索引優化
建表語句 create table if not exists class id int 10 unsigned not null auto increment,card int 10 unsigned not null,primary key id create table if not exis...