MySQL索引介紹

2021-07-31 11:50:41 字數 1077 閱讀 7392

簡單理解為:排好序的快速查詢資料結構

一般來說索引本身也很大,不可能全部儲存在記憶體中,因此索引往往以索引檔案的形式儲存在磁碟上。

我們平常所說的索引,如果沒有特別指明,一般都是指b樹結構組織的索引(b+樹索引)。

b+樹索引檢索原理

1、類似圖書館書目索引,提高資料檢索的效率,降低資料庫的io成本。

2、通過索引對資料進行排序,降低資料排序的成本,降低了cpu的消耗。

1、實際上索引也是一張表,該錶儲存了主鍵、索引字段,並指向實體表的記錄,所以索引也是要佔空間的。

2、雖然索引大大提高了查詢速度,但卻降低了更新表的速度。如對表進行insert/update/delete操作時,mysql不僅要儲存/更新資料,還要儲存/更新索引,如果表資料更新太頻繁可能導致因索引頻繁更新帶來的操作變慢,索引失效等問題。

3、索引只是提高查詢速度的乙個因素,需要花時間研究建立最優化索引

乙個索引只包含單個列,乙個表可以有多個單值索引

索引列的值必須唯一,但允許有空值。主鍵(primary key)預設是唯一索引

乙個索引可以包含多個列,高併發場景下傾向於建立復合索引

1、主鍵自動建立唯一索引

2、頻繁作為查詢條件的字段應當建立索引

3、查詢中與其他表關聯的字段,即外來鍵適合建立索引

4、查詢中排序的字段適合建立索引。因為排序欄位若通過索引去訪問將大大提高排序速度

5、查詢中統計或者分組的字段適合建立索引

1、頻繁更新的字段,經常增刪改的表,不適合建立索引

2、where條件裡用不到欄位不適合建立索引

3、表記錄太少的情況無需建立索引

4、如果某個資料列中包含許多重複的內容,為它建立索引就沒有太大的實際效果

MySQL索引介紹

索引由資料庫表中一列或者多列組合而成,其作用是提高對錶中資料的查詢速度。建立索引是指在某個表的一列或者多列上建立乙個索引,用來提高對錶的訪問速度,建立索引由三種方法 在建立表的時候建立,在已存在的表上建立和用alter table語句建立。建立索引的基本語法格式 asc引數表示公升序排列,desc引...

Mysql索引介紹

索引是在建立表的時候會自動生成乙個主鍵 以主鍵生成的 索引,所以我們可以直接搜尋索引 我們也可以建立 普通索引 create index t job index on e user t job 建立索引名 被建立的表 建立的列名 格式 所以索引可以多個.刪除普通索引 drop index t job...

mysql 索引介紹

在大資料表裡,同一條mysql語句,使用索引與不使用索引是具有極大的區別。索引作用相當於書的目錄,可以加快搜尋的速度。但是目錄是需要用額外的紙張來儲存,建立索引也是需要額外的空間。所以過多的索引可能會導致索引檔案比資料檔案還要龐大。索引是可以加快,但是要慎用。下面介紹mysql的幾種索引。最基本的索...