快速了解MySQL 索引

2022-10-07 07:15:08 字數 2077 閱讀 2429

mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。

打個比方,如果合理的設計且使用索引的mysql是一輛蘭博基尼的話,那麼沒有設計和使用索引的mysql就是乙個人力三輪車。

索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可以有多個單列索引,但這不是組合索引。組合索引,即乙個索包含多個列。

建立索引時,你需要確保該索引是應用在 sql 查詢語句的條件(一般作為 where 子句的條件)。

實際上,索引也是一張表,程式設計客棧該錶儲存了主鍵與索引字段,並指向實體表的記錄。

上面都在說使用索引的好處,但過多的使用索引將會造成濫用。因此索引也會有它的缺點:雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,如對表進行insert、update和delete。因為更新表時,mysql不僅要儲存資料,還要儲存一下索引檔案。

建立索引會占用磁碟空間的索引檔案。

普通索引

建立索引

這是最基本的索引,它沒有任何限制。它有以下幾種建立方式:

create index indexname on mytable(username(length));

如果是char,varchar型別,length可以小於字段實際長度;如果是blob和text型別,必須指定 length。

修改表結構

alter mytable add index [indexname] on (username(length))

建立表的時候直接指定

create table mytable(

id int not null,

username varchar(16) not null,

index [indexname] (username(length))

);刪除索引的語法

drop index [indexname] on mytable;

唯一索引

它與前面的普通索引類似,不同的就是:索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。它有以下幾種建立方式:

建立索引

create unique index indexname on mytable(username(length))

修改表結構

alter mytable add unique [indexname] on (username(length))

建立表的時候直接指定

create table mytable(

id int not null,

username varchar(16) not null,

unique [indexname] (username(length))

);使用alter 命令新增和刪除索引

有四種方式來新增資料表的索引:

以下例項為在表中新增索引。

mysql> alter table testalter_tbl add index (c);

你還可以在 alter 命令中使用 drop 子句來刪除索引。嘗試以下例項刪除索引:

mysql> alter table testalter_tbl drop index (c);

使用 alter 命令新增和刪除主鍵

主鍵只能作用於乙個列上,新增主鍵索引時,你需要確保該主鍵預設不為空(not null)。例項如下:

mysql> alter table testalter_tbl modify i int not null;

mysql> alter tabwww.cppcns.comle testalter_tbl add primary key (i);

你也可以使用 alter 命令刪除主鍵:

mysql> alter table testalter_tbl drop primary key;

刪除指定時只需指定primary key,但在刪除索引時,你必須知道索引名。

顯示索引資訊

你可以使用 show index 命令來列出表中的相關的索引資訊。可以通過新增 \g 來格式化輸出資訊。

嘗試以下例項:

mysql> show index from table_name\g

........

mysql檔案索引器 快速了解c 中的索引器

class person set 屬性宣告可以如下編碼 person p new person p.firstname tom console.writeline p.firstname 屬性宣告倒更像是域宣告,只不過它還宣告了兩個特殊的成員,按照微軟的說法就是所謂的訪問函式 accessor 當某...

簡單了解MySQL索引

索引分類 1.普通索引index 加速查詢 2.唯一索引 主鍵索引 primary key 加速查詢 約束 不為空且唯一 唯一索引 unique 加速查詢 約束 唯一 3.聯合索引 primary key id,name 聯合主鍵索引 unique id,name 聯合唯一索引 index id,n...

淺顯了解MySQL索引

索引在資料庫中是很重要的乙個點,很重要,很重要,很重要!重要的事情說三遍!mysql官方都索引的定義為 索引 index 是幫助mysql高效獲取資料的資料結構。一句話來解釋 索引是資料結構。唯一的標識,主鍵不可重複,只能有乙個列作為主鍵。避免重複的列出現,唯一索引可以重複,多個列都可以標識為 唯一...