資料庫索引分類

2022-03-11 14:53:42 字數 2193 閱讀 6909

資料庫索引

作用:提高查詢速度

確保資料的唯一性

可以加速表和表之間的連線,實現表和表之間的參照完整性

使用分組和排序子句進行資料檢索時,可以減少分組和排序的時間

全文檢索字段進行搜素優化

分類:主鍵索引(primay key)

唯一索引(unique)

常規索引(index)

全文索引(fulltext)

主鍵索引

主鍵:某乙個屬性組能唯一標識一條記錄

如:學生表(學號,姓名,班級,性別等等),學號時唯一標識的,可以作為主鍵

特點:最常見的索引型別

確保資料記錄的唯一性

確定特定資料記錄在資料庫中的位置

例項:create table `表名`(、

`gradeid` int(11)  auto_increment primary key,

#或 primary key(`gradeid`)

)唯一索引

作用:避免同乙個表中某資料列中的值重複

與主鍵索引的區別

主鍵索引只能有乙個

唯一索引可有多個

例項:create table `grade`(、

`gradeid` int(11)  auto_increment primary key,

`gradename` varchar(32) not null unique

#或 unique

key

` gradeid`

(`gradeid`)

常規索引

作用:快速定位特定資料

注意:index 和 key 關鍵字都可以設定常規索引

應加在查詢條件的字段

不易新增太多常規索引,影響資料的插入,刪除和修改操作

例項:##建立表時新增

create table `result`{

//省略一些**

index / key `ind` (`studentno`,`subjectno`)

##建立後追加

alter table `result` add  index `ind` (`studentno`,`subjectno`);

全文索引

作用:快速定位特定資料

注意:只能用於myisam型別的資料表

只能用於char ,varchar,text資料列型別

使用大型資料集

例項:create table `student`(

#省略一些sql語句

fulltext(`studentname`)

)endine=myisam;

alter table employee add fulltext(`first_name`)

唯一索引補充:

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

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)));

基本索引:

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

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

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

alter table tablename add index indexname(columnname)

create table mytable(id int not null,username varchar(16)not null,index [indexname](username(length)));

drop index [indexname]on mytable;

資料庫 索引的分類

聚集索引 非聚集索引 唯一索引 組合索引 順序檔案上的索引 b 樹索引 雜湊索引 位圖索引 聚集索引對錶的物理資料頁中的資料按列進行排序,然後再重新儲存到磁碟上,即聚集索引與資料是混為一體的。聚集索引和資料庫中記錄的物理順序與索引順序相同。乙個表中只能有乙個聚集索引。聚集索引可引用與下面的幾種情況 ...

資料庫 索引(概念,優缺點,分類)

1 索引概念 索引是由使用者建立,能夠被修改和刪除的,實際儲存在資料庫中的物理存在,它是某乙個表中一列或者若干列值的集合和相應的指向表中物理標誌這些值的資料頁的邏輯指標清單。2 索引的優點 第一,通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。第二,可以大大加快資料的檢索速度,這也是建立索...

MySQL 資料庫索引原理與分類

資料庫索引本質上是一種資料結構 儲存結構 演算法 目的是為了加快目標資料檢索的速度。1.索引的本質與原理?2.索引的分類?3.福利彩蛋 我們先看乙個問題 假設現在有100000條從0到10000且從大到小排列的整型資料,1條資料的大小假設 真的只是假設 是1kb,作業系統的每次i o資料塊 頁 大小...