MySQL裡的Key和Index有什麼不同

2021-07-22 10:03:12 字數 482 閱讀 2142

key 是資料庫的物理結構,它包含兩層意義,一是約束(偏重於約束和規範資料庫的結構完整性),二是索引(輔助查詢用的)。包括primary key, unique key, foreign key 等。

mysql中的key是同時具有constraint和index的意義。

index是資料庫的物理結構,它只是輔助查詢的,它建立時會在另外的表空間(mysql中的innodb表空間)以乙個類似目錄的結構儲存。索引要分類的話,分為字首索引、全文本索引等;因此,索引只是索引,它不會去約束索引的字段的行為。 

例如:create table t(id int, index inx_tx_id (id));

我們說索引分類,分為主鍵索引、唯一索引、普通索引(這才是純粹的index)等,也是基於是不是把index看作了key。比如 create table t(id int, unique index inx_tx_id (id)); 這裡的index相當於key的效果。

參考: 

Mysql中key和index的區別點整理

我們先來看下 alter table reportblockdetail add key taskcode taskcode alter table reportblockdetail drop key taskcode 嗯這確實是比較容易混淆的地方。在我們使用mysql中可能壓根不會注意這個問題,...

MySQL裡on和where的區別

使用者表 user create table user id intauto increment primary keycomment 使用者id 主鍵 username varchar 50 comment 使用者姓名 age char 3 comment 使用者年齡 訂單表 orders cre...

關於mysql中的key

一.關於mysql中key的說明 1.key是空的該列的值可以重複.表示該列沒有索引,或者是乙個非唯一的復zhi合索引的非dao前導列.2.key是pri該列是主鍵的組成部分.3.key是uni該列是乙個唯一值索引的第一列 前導列 並別不能含有空值 null 4.key是mul該列的值可以重複.該列...