InnoDB 引擎主鍵選擇以及索引的優缺點

2021-10-01 12:12:19 字數 718 閱讀 9283

innodb 引擎主鍵選擇以及索引的優缺點

在 innodb 中,每張表都有個主鍵(primary key),如果在建表時沒有顯式地定義主鍵,則 innodb 引擎會按照如下方式選擇或建立主鍵:

首先判斷表中是否有非空的唯一索引(unique not null),若有,則該列即為主鍵(當表中有多個非空唯一索引時,innodb 儲存引擎將選擇建表時第乙個定義的非空唯一索引為主鍵);

若不符合上述條件,innodb 儲存引擎自動建立乙個 6 位元組大小的隱藏列(row_id)作為主鍵。

因此,建表時最好顯式指定主鍵。

索引優缺點

1.主要優缺點如下(可通過上述儲存結構分析理解):

優點1.可以提高資料檢索效率,降低資料庫 io 成本;

2.對記錄進行排序,降低 cpu 消耗(被索引的列會自動進行排序),可以提高排序和分組查詢的效率。

缺點1.索引會占用磁碟空間;

2.降低更新效率(更新操作會同步更新索引)。

3.索引使用場景

需要建立索引的場景

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

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

3.多表關聯查詢中,關聯字段應該建立索引(on 兩邊都要建立);

4.查詢中排序的字段,應該建立索引;

5.統計或者分組。

不需要使用索引的場景

1.表記錄太少;

2.頻繁更新;

3.查詢字段使用頻率不高。

InnoDB引擎以及合適選擇

innodb引擎 1.innodb表的自動增長列插值時插入null或者0,實際插入的會是自動增長後的值。2.強制設定自動增長列的初始值,語句 alter table auto increment n 3.select last insert id 查詢當前執行緒最後插入記錄使用的值。4.對於inno...

InnoDB儲存引擎為什麼選擇B 樹構建索引

索引是對資料庫表中乙個或多個列的值進行排序的資料結構,以協助快速查詢 更新資料庫表中資料。在mysql中,索引是在儲存引擎層實現的,所以並沒有統一的索引標準,即不同儲存引擎的索引的工作方式並不一樣。而即使多個儲存引擎支援同一種型別的索引,其底層的實現也可能不同。索引加速了資料訪問,因為儲存引擎不會再...

表的引擎選擇InnoDB

從innodb與myisam的區別及支援場景來說明,並給出一些比較明顯的特性和注意點。效能角度 1.myisam型別的表強調的是侷限場景下的效能,其單執行緒只插入或只讀取比innodb型別更快。主要因為myisam使用的表鎖的開銷小於innodb的行鎖開銷,另外myisam實現簡單,在讀取到索引後直...