索引(在mysql中也叫做「鍵(key)」)是儲存引擎為了加速對錶中資料行的檢索而建立對一種分散儲存的資料結構。
索引的出現其實就是為了提高資料查詢的效率,正確的建立適合的索引是提公升資料庫查詢效能的基礎。
索引可以讓伺服器快速的定位到表的位置,根據建立索引的資料結構不同,索引也有一些其他的附加作用。
最常見的b-tree索引,按照順序儲存資料,所以mysql可以用來做order by 和group by操作。
索引能極大的減少儲存引擎需要掃瞄的資料量
索引可以幫助我們在進行分組、排序等操作時,避免使用臨時表
索引可以把隨機
io變成順序
io
雜湊表:雜湊表是一種以鍵-值儲存資料的介面,我們只要輸入待查詢的key,就可以找到其對應的值。雜湊的思路很簡單,把值放在陣列裡,用乙個雜湊函式把key換算成乙個確定的位置,然後把value放在陣列的這個位置。不可避免地,多個key值經過雜湊函式的換算,會出現乙個同乙個值的情況。處理這種情況的一種方法是,拉出乙個鍊錶。雜湊表這種結構適用於只有等值查詢的場景,比如memcached及其他一些nosql引擎。而有序陣列在等值查詢和範圍查詢場景中效能都非常優秀。primary: 主鍵索引,不允許有空值有序陣列:有序陣列索引只適用於靜態儲存引擎,比如一些不會再修改的資料。
搜尋樹:二叉搜尋樹的特點是每個節點的左子節點小於父節點,父節點又小於右子節點。樹可以有二叉,也可以有多叉。多叉樹就是每個節點有多個兒子,兒子之間的大小保證從左到右遞增。二叉樹是搜尋效率最高的,但是實際上大多數的資料庫儲存卻並不使用二叉樹。其原因是,索引不止存在記憶體中,還要寫到磁碟上。
#建立主鍵索引
alter table table add primary key (column);
unique: 唯一索引,允許有空值。
#建立唯一索引
alter table table add unique (column);
fulltext:全文索引,innodb引擎在5.6.4版本提供了對全文索引的支援。
#建立全文索引
alter table table add fulltext (column)
#全文索引用法 注意mysql只支援英文內容的全文索引
select * from table where match(column) against('text' in natural language mode);
mysql索引 使用筆記 mysql索引筆記
mysql索引 一 索引的優缺點 優點 1.通過建立唯一索引,可以保證資料庫表中每一行的唯一性。2.可以大大加快查詢速度,這是建立索引的最主要原因 4.在使用分組和排序子句進行資料查詢時,也可以顯著減少查詢中分組和查詢的時間 缺點 1.建立索引和維護索引要耗費時間,並且隨著資料量的增加所耗費的時間也...
mysql索引筆記
型別 雜湊 雜湊演算法 原理 雜湊演算法 將各個資料重組成編號,查詢時將資料編號直接找到查詢到的值 優勢 一次性找到該值 劣勢 資料連續性差 中 編號 005 國 編號 006 人 編號 007 民 編號 008 如果查詢 中民 tree 二叉樹演算法 log2n 原理 當我查詢3時,此時4比3大走...
MySql筆記(索引)
索引能優化資料庫查詢效能,但索引也有代價 挑選索引應符合以下原則 為用於搜尋 排序或分組的列建立索引,爾對於用作輸出顯示的列 select的結果 則不用。也就是說,最好是那些出現在where子句,連線子句,或者出現在order by或group by子句中的列 考慮資料列基數 列的基數是指列中非重複...