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,常理來說這...