為什麼使用索引

2021-09-27 10:22:30 字數 726 閱讀 8958

資料庫物件索引其實與書的目錄非常相似,主要是為了提高從表中檢索資料的速度。由於資料儲存在資料庫表中,所以索引是建立在資料庫表物件上的,由表中的乙個欄位或多個字段生成的鍵組成,這些儲存在資料結構(b-樹或雜湊表)中,通過mysql可以快速有效的查詢與鍵值相關聯的字段。根據索引的儲存型別,可以將索引分為b型樹索引(btree)和雜湊索引(hash)。

注意:innodb和myisam儲存引擎支援btree型別索引,memory儲存引擎支援hash型別索引預設為前者索引。

資料庫物件索引的出現,出來可以提高資料庫管理系統的查詢速度,而且還可以保證欄位的唯一性,從而實現資料庫表的的完整性。檢視幫助文件,可以發現mysql支援6種索引,他們分別為普通索引、唯一索引、全文索引、單列索引、多列索引和空間索引。

索引的建立有利有弊。建立索引可以提高查詢速度,但過多的建立索引則會佔據許多磁碟空間。因此在建立索引之前,必須權衡利弊。

以下情況適合建立索引:
經常被查詢的字段,即在where子句**現的字段

在分組的字段,即在group by子句**現的字段

存在依賴關係的子表和父表之間的聯合查詢,即主鍵或外來鍵字段。

設定唯一完整性約束的字段。

在以下情況不適合建立索引

1.在查詢中很少被使用的字段

2.擁有許多重複值的字段

為什麼要使用索引?

什麼是索引?mysql 官方對索引的定義為 索引 index 是幫助 mysql 高效獲取資料的資料結構。快速到底 影響資料庫效率的原因千千萬萬,使用索引是為了解決哪方面的資料庫的瓶頸?點一 mysql 資料庫儲存資料最終是以檔案的形式儲存到硬碟的。一般來說,我們在程式中使用的時候肯定要把磁碟檔案中...

我們為什麼要用索引,用索引為什麼比不用索引快

經過老楊的細心指點,我才真正的明白 理解 記住 以前曾看過索引的資料,時間長都忘啦 老楊問我如果一張表上沒有索引,你要查id 5的記錄,資料庫會怎麼做?我說資料庫會先根據資料字典找到這張表,然後根據表頭的記錄找到這張表的資料塊,然後每個資料塊去找。老楊 會把所有的資料塊都掃一遍嗎?我 有可能會,有可...

Mysql使用索引為什麼會變快?

mysql 使用的是 btree 索引,那它是怎麼加速檢索的呢?檢索中主要耗時在於記憶體與磁碟的io耗時,所以加速的關鍵在於減少io的次數。圖中是一顆 b 樹,每個磁碟塊包含幾個資料項和指標,如磁碟塊 1 包含資料項 17 和 35,包含指標 p1 p2 p3,p1指向包含資料項小於17的磁碟塊,p...