mysql 中對索引的一些簡單理解

2021-09-13 14:29:15 字數 1072 閱讀 8478

mysql中索引的分類

mysql索引結構

哪些情況下需要建索引

哪些情況下不需要建立索引

在面試的時候面試官經常會問這個問題?

1. 你可以簡單的理解為「排好序快速查詢的資料結構」

2.索引本身很大,不可能全部放在記憶體中,因此索引以索引檔案的形式放在磁碟上!

3.平時說的索引如果沒有特殊說明就是指btree結構的索引

1.提高資料庫的查詢效率,降低資料庫的io成本。

因為新增索引後資料有序的排列,在查詢的時候可以快速定位到想查詢的位置,避免全表查詢,因此降低了資料庫的io成本

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

1.實際上索引也是一張表,該錶儲存了主鍵和索引字段,因此也占用了許多空間

2.索引雖然增加了查詢效率,但是在insert ,update ,delete 對錶進行更新的時候。mysql不僅要儲存資料,還要儲存索引檔案每次跟新新增了索引的字段

1.單值索引:即乙個索引只包含單個列,乙個標可以有多個單值索引

2.唯一索引:索引列的值必須唯一,但允許有空值

3.復合索引:即乙個索引包含多個列

1.建立:

create index indexname on mytable(columnname)

2.刪除:

drop index 【indexname】 on mytable

3.檢視:

show index from table_name

可以自行翻閱一些資料

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

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

3.查詢與其他表關聯的字段,外來鍵關係建立索引

4.查詢中排序的字段,排序欄位若通過索引去訪問將大大提高查詢效率

5.查詢中統計或者分組的字段

1.表中記錄太少

2.頻繁更新的字段不適合建立所以

3.資料重複且分布平均的表字段

對MySQL中索引的一些理解

什麼是索引?有人說 索引就是一本書的目錄,當我們想要快速的找到某個點時就可以通過目錄直接跳到相應地方 這只是乙個通俗的說法,索引的定義是 索引是為了加速對錶中資料行的檢索而建立的乙個分散儲存 的資料結構。它是一種資料結構而且是b tree結構。為什麼要建立索引?正確的建立合適的索引會提高資料庫查詢的...

mysql中關於索引的一些查詢

1.左連線 左連線的時候,由於左表的資料都會拿到,所以需要對右表建立索引,從而提高查詢效率 2.右連線 右連線的時候,由於右表資料都會拿到,所以需要對左表建立索引,從而提高查詢效率 3.內連線 內連線和右連線一樣,需要左表建立索引,從而提高查詢效率 4.exists和in exists時先是外表做l...

mysql索引技巧 MySql 索引的一些技巧

一 多表子從查詢 多表查詢時,子查詢可能會出現觸發不了索引的情況 select from test 1 where id in select id from test publish where id in 38,69 上面語句,test 1和test public都where了主鍵id,常理來說這...