資料庫索引簡介

2021-09-27 16:36:02 字數 1112 閱讀 8955

索引是一種特殊的資料庫結構,可以用來快速查詢資料庫表中的特定記錄,索引是提高資料庫查詢效能的重要方式。

在mariadb中,所有的資料型別都可以被索引。

mariadb的索引包括普通索引、唯一性索引、全文索引、單列索引、多列索引和空間索引等。

索引由資料庫表中一列或多列組合而成,其作用是提高對錶中資料的查詢速度。

索引是建立在表上的,是對資料庫表中一列或多列的值進行排序的一種結構。

通過索引,查詢資料時可以不必讀完記錄的所有資訊,而只需要查詢索引列;如果沒有索引,資料庫系統就要讀取每條記錄的所有資訊進行匹配,因此使用索引可以提高資料庫查詢效率。

不同的儲存引擎定義了每個表的最大索引數和最大索引長度,所有儲存引擎對每個表至少支援16個索引,總索引長度至少為256個位元組,有些儲存引擎支援更多。索引由有兩種儲存型別,包括b型樹索引(btree)和雜湊索引(hash),innodb和myisam儲存引擎支援btree索引,memory儲存引擎支援hash索引和btree索引,預設為hash 索引。

索引有明顯的優點,也有不可避免的缺點。

缺點:在建立普通索引時,不附加任何限制條件。普通索引可以建立在任何資料型別中,其值是否唯一和非空由字段本身的完整性約束條件決定。建立索引以後,查詢時可以通過索引進行查詢。

使用unique引數可以設定索引為唯一性索引。在建立唯一性索引時,索引對應的值必須是唯一的。大家可能會問它與在字段中加上unique的完整性約束條件再使用普通索引有什麼區別,事實上通過唯一性索引可以更快地確定某條資料。主鍵就是一種特殊的唯一性索引。

使用fulltext引數可以設定索引為全文索引,全文索引只能建立在char、varchar或text型別的字段上。查詢資料量較大的字串型別的字段時,使用全文索引可以提高查詢速度。全文索引的搜尋執行方式預設不區分大小寫,但當索引的列使用二進位制排序時,可以執行區分大小寫的全文索引。

在表中的單個字段建立索引,單列索引只根據該欄位進行索引。單列索引可以是普通索引、唯一性索引或全文索引,只要保證該索引只對因應乙個字段。

多列索引是在表的多個字段建立乙個索引,該索引指向建立時對應的多個字段,並可以通過這幾個字段進行查詢。但是,只有查詢時使用了這些欄位中的第乙個欄位時,該索引才會被使用。

空間索引只能用於空間資料型別,而空間資料型別只在myisam儲存引擎中使用。

資料庫索引 簡介

索引是對資料庫表中乙個或多個列 例如,employee 表的姓名 name 列 的值進行排序的結構。如果想按特定職員的姓來查詢他或她,則與在表中搜尋所有的行相比,索引有助於更快地獲取資訊。例如這樣乙個查詢 select from table where id 10000。如果沒有索引,必須遍歷整個表...

資料庫 索引優化分析 索引簡介

mysql官方對索引的定義為 索引 index 是幫助mysql高效獲取資料的資料結構。可以得到索引的本質 索引是資料結構。索引的目的在於提高查詢效率,可以模擬字典。可以將索引理解為 排好序的快速查詢資料結構 在資料之外,資料庫系統還維護著滿足特定查詢演算法的資料結構,這些資料結構以某種方式引用 指...

資料庫中 「主鍵」和「索引」 簡介

主鍵是錶行資料的唯一標識,具有唯一性和非空屬性,索引主要作用是用於查詢,提供查詢速度的。主鍵是表中的乙個或多個字段,它的值用於惟一地標識表中的某一條記錄。索引是對資料庫表中一列或多列的值進行排序的一種結構,只有當經常查詢索引列中的資料時,才需要在表上建立索引。索引占用磁碟空間,並且降低新增 刪除和更...