資料庫索引

2021-10-25 10:19:39 字數 890 閱讀 2252

索引

索引的目的:提高查詢效率(加快查詢速度)

詳解:為什麼索引會增加速度,db在執行一條sql語句的時候,預設的方式是根據搜尋條件進行全表掃瞄,遇到匹配條件的就加入搜尋結果集合。如果我們對某一欄位增加索引,查詢時就會先去索引列表中一次定位到特定值的行數,大大減少遍歷匹配的行數,所以能明顯增加查詢的速度。

mysql官方對於索引的定義為:索引是幫助mysql高效獲取資料的資料結構。即可以理解為:索引是資料結構。

我們知道,資料庫查詢是資料庫最主要的功能之一,我們都希望查詢資料的速度盡可能的快,因此資料庫系統的設計者會從查詢演算法的角度進行優化。最基本的查詢演算法當然是順序查詢,當然這種時間複雜度為o(n)的演算法在資料量很大時顯然是糟糕的,於是有了二分查詢、二叉樹查詢等。但是二分查詢要求被檢索資料有序,而二叉樹查詢只能應用於二叉查詢樹,但是資料本身的組織結構不可能完全滿足各種資料結構。所以,在資料之外,資料庫系統還維護者滿足特定查詢演算法的資料結構,這些資料結構以某種方式引用資料,這樣就可以在這些資料結構上實現高階查詢演算法。這種資料結構,就是索引。

原理總結:通過不斷的縮小想要獲得資料的範圍來篩選出最終想要的結果,同時把隨機的事件變成順序的事件,也就是我們總是通過同一種查詢方式來鎖定資料。

資料庫適合建立索引的規則如下:

表的主鍵,外來鍵應該建立索引;

資料量比較大的表應該建立索引;

經常需要和其他表建立連線,在連線字段應該建立索引;

經常出現在where子句中的字段,應該建立索引。

資料庫不適合建立索引的情況:

比較大的文字字段或者長度較長的字段,不適合建立索引;

頻繁進行資料操作的表,不適合建立過多的索引,因為額外維護索引表需要更多的開銷;

小型表(資料量低於300行)不要建立索引。

資料庫 資料庫索引

索引是儲存引擎用於快速找到記錄的一種資料結構。索引以檔案的形式儲存在磁碟中。索引可以包含乙個或多個列的值。儲存引擎查詢資料的時候,先在索引中找對應值,然後根據匹配的索引記錄找到對應的資料行。1.b tree索引 2.雜湊索引 myisam和innodb儲存引擎 只支援btree索引,也就是說預設使用...

資料庫mysql索引 資料庫 mysql索引

mysql 索引 mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。打個比方,如果合理的設計且使用索引的mysql是一輛蘭博基尼的話,那麼沒有設計和使用索引的mysql就是乙個人力三輪車。索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可...

資料庫索引

索引 索引列唯一索引 主鍵索引 聚簇索引和非聚簇索引 如何建立索引 如何刪除索引 使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構,例如 employee 表的姓 lname 列。如果要按姓查詢特定職員,與必須搜尋表中的所有行相比,索引會幫助您更快地獲得該資...