MySQL中對於索引的基本增刪查改操作總結

2021-08-21 16:17:37 字數 3166 閱讀 6101

這篇文章主要介紹了mysql中對於索引的基本增刪查改操作總結,索引可以提高mysql的檢索速度,需要的朋友可以參考下

建立索引

mysql建立索引的語法如下:?

create[unique|fulltext|spatial]indexindex_name

[using index_type]

ontable_name (index_col_name,...)

其中對應的語法變數資訊如下:

[unique|fulltext|spatial]

中括號中的這三個關鍵字表示建立的索引型別,它們分別表示唯一索引、全文索引、空間索引三種不同的索引型別。如果我們不指定任何關鍵字,則預設為普通索引。

index_name

index_name表示索引的名稱,由使用者自行定義,以便於以後對該索引進行修改等管理操作。

index_type

index_type表示索引的具體實現方式,在mysql中,有兩種不同形式的索引——btree索引和hash索引。在儲存引擎為myisam和innodb的表中只能使用btree,其預設值就是btree;在儲存引擎為memory或者heap的表中可以使用hash和btree兩種型別的索引,其預設值為hash。

index_col_name

index_col_name表示需要建立索引的欄位名稱,我們還可以針對多個字段建立復合索引,只需要在多個欄位名稱之間以英文逗號隔開即可。

此外,對於char或varchar型別的字段,我們還可以只使用字段內容前面的一部分來建立索引,只需要在對應的欄位名稱後面加上形如(length)的指令即可,表示只需要使用字段內容前面的length個字元來建立索引。在這裡,我們以user表的username欄位(型別為varchar(50))為例,使用username欄位的6個字元字首來建立索引。?

createindexidx_user_usernameonuser(username(6));

由於多數字段的前6個字元通常不同,所以此索引不會比使用欄位的全部內容建立的索引速度慢很多。另外,使用欄位的一部分建立索引可以使索引檔案大大減小,從而節省了大量的磁碟空間,有可能提高insert操作的速度。

在mysql中,字首長度最大值為255位元組。對於儲存引擎為myisam或innodb的資料表,字首最長為1000位元組。

必須注意的是,在mysql中,對於text和blob這種大資料型別的字段,必須給出字首長度(length)才能成功建立索引。

備註1:上述建立索引的語法還具有以下變體:?

altertabletable_name

add[unique|fulltext|spatial]indexindex_name (index_col_name,...) [using index_type]

備註2:在mysql中,只有當資料表的儲存引擎為myisam, innodb或bdb型別時,你才能向具有null值的列或者資料型別為text或blob的列新增索引。

刪除索引

在mysql中刪除索引的方法非常簡單,其完整語法如下:?

--刪除指定表中指定名稱的索引

altertabletable_name

dropindexindex_name;

在這裡,我們編寫sql語句將上面建立索引的例子中的索引idx_user_username刪除掉,**詳情如下:?

--刪除名稱為idx_user_username的索引

altertableuser

dropindexidx_user_username;

修改索引

在mysql中並沒有提供修改索引的直接指令,一般情況下,我們需要先刪除掉原索引,再根據需要建立乙個同名的索引,從而變相地實現修改索引操作。?

--先刪除

altertableuser

dropindexidx_user_username;

--再以修改後的內容建立同名索引

createindexidx_user_usernameonuser(username(8));

檢視索引

在mysql中,要檢視某個資料庫表中的索引也非常簡單,只需要使用以下兩個命令中的任意一種即可。?

--如果檢視索引前,沒有使用user db_name等命令指定具體的資料庫,則必須加上from db_name

showindexfromtable_name [fromdb_name]

--如果檢視索引前,沒有使用user db_name等命令指定具體的資料庫,則必須加上db_name.字首

showindexfrom[db_name.]table_name

MySQL 索引的增刪查

檢視索引 show index from table name show keys from table name 刪除索引 drop index index name from table name drop index test index from contents 建立普通索引 create...

mysql後台增刪改 mysql基本的增刪改查操作

1.增 insert insert into 表名 values 0,測試 insert into 表名 id,name values 0,高蒙 注 如上語句,表結構中有自動增長的列,也必須為其指定乙個值,通常為0 2.刪 delete delete from 表名 delete from 表名 w...

mysql 索引 增刪查

一 建立 建立單個索引的語法 create index 索引名 on 表名 欄位名 索引名一般是 表名 欄位名 給id建立索引 create index t1 id on t1 id 建立聯合索引的語法 create index 索引名 on 表名 欄位名1,欄位名2 二 刪除 可利用alter t...