数据库索引分类

数据库索引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;
相关文章
相关标签/搜索