數據庫索引分類

數據庫索引sql

做用:數據庫

提升查詢速度優化

確保數據的惟一性spa

能夠加速表和表之間的鏈接,實現表和表之間的參照完整性排序

使用分組和排序子句進行數據檢索時,能夠減小分組和排序的時間索引

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

分類:table

主鍵索引(PRIMAY KEY)class

惟一索引(UNIQUE)sql語句

常規索引(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`)

 

 

 

常規索引

做用:

快速定位特定數據

注意:

indexkey 關鍵字均可以設置常規索引

應加在查詢條件的字段

不易添加太多常規索引,影響數據的插入,刪除和修改操做

實例:

##建立表時添加

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;
相關文章
相關標籤/搜索