mysql索引型別

2021-08-08 05:32:20 字數 2353 閱讀 2245

索引型別

1、btree索引(普通索引)

(1)直接建立索引

create index  index_name  on table_name (column_list);

(2)修改表結構的方式新增索引

alter table table_name add index index_name(column_list);

(3)建立表結構的時候新增索引

create table `table` (

`id` int(11) not null auto_increment ,

`title` char(255) character set utf8 collate utf8_general_ci not null ,

`content` text character set utf8 collate utf8_general_ci null ,

`time` int(10) null default null ,

primary key (`id`),

index index_name (title(length))

(4)刪除索引

drop index index_name on table_name

2、唯一索引

索引列的值必須唯一,但允許有空值(注意和主鍵不同)。如果是組合索引,則列值的組合必須唯一,建立方法和普通索引類似。

(1)建立唯一索引

create unique index  index_name  on table_name (column_list);

(2)修改表結構的方式新增索引

alter table table_name add unique index_name(column_list);

(3)建立表結構的時候新增索引

create table `table` (

`id` int(11) not null auto_increment ,

`title` char(255) character set utf8 collate utf8_general_ci not null ,

`content` text character set utf8 collate utf8_general_ci null ,

`time` int(10) null default null ,

primary key (`id`),

unique index_name (title(length))

3、全文索引(full_text)

fulltext索引僅可用於 myisam 表,他們可以從char、varchar或text列中作為create table語句的一部分被建立,

或是隨後使用alter table 或create

index被新增。

(1)建立表的適合新增全文索引

create table `table` (

`id` int(11) not null auto_increment ,

`title` char(255) character set utf8 collate utf8_general_ci not null ,

`content` text character set utf8 collate utf8_general_ci null ,

`time` int(10) null default null ,

primary key (`id`),

fulltext (content));

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

alter table article add fulltext index_content(content)

(3)直接建立索引

create fulltext index index_content on article(content)

4、單列索引、多列索引

多個單列索引與單個多列索引的查詢效果不同,因為執行查詢時,mysql只能使用乙個索引,會從多個索引中選擇乙個限制最為嚴格的索引。

5、組合索引(最左字首)

平時用的sql查詢語句一般都有比較多的限制條件,所以為了進一步榨取mysql的效率,就要考慮建立組合索引。例如上表中針對title和time建

立乙個組合索引:alter table article add index index_titme_time (title(50),time(10))。建立這樣的組合索引,其實是相當於分別建

立了下面兩組組合索引:

–title,time

–title

為什麼沒有time這樣的組合索引呢?這是因為mysql組合索引「最左字首」的結果。簡單的理解就是只從最左面的開始組合。並不是只要包含這兩列的查詢都會用到該組

合索引。

mysql索引型別介紹 mysql索引型別介紹

索引型別介紹 主鍵索引 primary key 要求關鍵字不能重複,也不能為null,同時增加主鍵約束 主鍵索引定義時,不能命名 唯一索引 unique index 要求關鍵字不能重複,同時增加唯一約束 普通索引 index 對關鍵字沒有要求 全文索引 fulltext key 關鍵字的 不是所有欄...

mysql索引型別介紹 mysql索引型別介紹

b 樹是多路平衡查詢樹,相對於平衡二叉樹,對父結點的直接子結點個數,不再僅限於2,可以指定m 自定義 這樣可以在樹的深度不大量增加的前提下,儲存更多的結點。b 樹是通常在檔案系統中使用。特點 a 樹的每個結點最多有m 自定義 子結點 b 若根結點不是葉子結點,則至少有兩個子結點 c 除根結點外的所有...

MySQL索引 索引型別

在mysql有兩種索引型別 hash b 樹 hash索引原理比較簡單就是利用了乙個hash表 說b 樹之前先要了解b 樹的資料結構。不廢話,先上圖。對b 樹做一些解釋,參考上圖。b 樹的資料都在葉子節點上 非葉子節點上的這些都是範圍。舉例 最上面的根節點上的資料是5,28,65代表的是它的三個子樹...