mysql 多種索引定義

2021-08-21 12:31:55 字數 1120 閱讀 5575

1.普通索引

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

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

2.修改表結構(新增索引)

alter table tablename add index indexname(columnname)

3.建立表的時候直接指定

create table mytable(  

id int not null,

username varchar(20) not null,

index [indexname] (username(length))

);

4.刪除索引的語法

drop index [indexname] on mytable;
5.唯一索引

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

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

修改表結構

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

建立表的時候直接指定

create table mytable(

id int not null,

username varchar(16) not null,

unique [indexname] (username(length))

);

6.聯合索引

create index 索引名 on 表名(欄位名a,欄位名b)

最左原則:a可以,a,b可以,b不可以,a,b,c也可以

show keys from table;

show index from table;

7.分析是否使用索引

explain sql;

mysql 索引定義 MySQL 索引詳解

普通索引 唯一索引和主索引 1.普通索引 普通索引 由關鍵字key或index定義的索引 的唯一任務是加快對資料的訪問速度。因此,應該只為那些最經常出現在查詢條件 where column 或排序條件 order by column 中的資料列建立索引。只要有可能,就應該選擇乙個資料最整齊 最緊湊的...

MySQL索引的多種型別

在資料之外,資料庫系統還維護著滿足特定查詢演算法的資料結構,這些資料結構以某種方式引用 指向 資料,這樣就可以在這些資料結構上實現高階查詢演算法。這種資料結構,就是索引。下圖就是一種可能的索引方式示例 左邊是資料表,一共有兩列七條記錄,最左邊的是資料記錄的實體地址 為了加快col2的查詢,可以維護乙...

mysql索引的概念 MySQL索引的定義

請注意,本文件基於mysql5.7 innodb引擎,也許會對以下的版本同樣生效,但不構成指導意見。關於mysql的索引,網上已經有太多的文章來解釋,這裡咱們不提那些老生常談的定義,嘗試從特殊一點的角度來直觀的理解索引。索引是幫助mysql高效獲取資料的排好序的資料結構,節點中的索引從左到右做遞增排...