博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库索引分类
阅读量:4540 次
发布时间:2019-06-08

本文共 1811 字,大约阅读时间需要 6 分钟。

数据库索引

作用:

提高查询速度

确保数据的唯一性

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

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

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

分类:

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

 

 

 

常规索引

作用:

快速定位特定数据

注意:

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;
 

转载于:https://www.cnblogs.com/zsc1/p/9230096.html

你可能感兴趣的文章
java基础题
查看>>
[转]人人店短信插件开发
查看>>
[转]c# System.IO.Ports SerialPort Class
查看>>
14. 最长公共前缀
查看>>
Redis文档
查看>>
项目重构
查看>>
(笔试题)和一半的组合数
查看>>
leetcode--Algorithm--Array_Part 1 Easy- 566 Reshape the Matrix
查看>>
AC自动机算法详解 (转载)
查看>>
python3-day5(模块)
查看>>
Linux配置JDK
查看>>
qt 读取xml文件
查看>>
python3之正则表达式
查看>>
Visual Studio提示“无法启动IIS Express Web服务器”的解决方法
查看>>
Java 时间总结
查看>>
jQuery EasyUI 拖放 – 基本的拖动和放置
查看>>
这些年正Android - 母亲
查看>>
[工具] BurpSuite--XssValidator插件
查看>>
LPC1788系统时钟初始化
查看>>
channel vs mutex
查看>>