码迷,mamicode.com
首页 > 数据库 > 详细

数据库索引分类

时间:2019-12-22 00:59:55      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:pre   ble   fir   table   方式   color   end   数据库   操作   

数据库索引

作用:

提高查询速度

确保数据的唯一性

可以加速表和表之间的连接,实现表和表之间的参照完整性

使用分组和排序子句进行数据检索时,可以减少分组和排序的时间

全文检索字段进行搜索优化

分类:

主键索引(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;

数据库索引分类

标签:pre   ble   fir   table   方式   color   end   数据库   操作   

原文地址:https://www.cnblogs.com/morganlin/p/12078625.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!