作用

  • 提高查询速度,确保数据的唯一性
  • 加速表和表支架的连接,实现表与表之间的参照完整性
  • 分组和排序子句进行数据检索时,可以减少分组和排序的时间
  • 全文检索字段进行搜索优化

列举索引

  1. SHOW INDEX FROM 表名 ;

分类

主键索引( PRIMARY KEY )

主键索引是最常见的索引类型,确保数据记录的唯一性,确定特定数据记录在数据库中的位置。主键索引只能有一个

  1. CREATE TABLE `表名`(
  2. `GradeID` INT(11) AUTO_INCREMENT PRIMARY KEY ,
  3. # 或 PRIMARY KEY(`GrideID`)
  4. ) ;

唯一索引( UNIQUE )

唯一索引避免同一个表中某数据列中的值重复。唯一索引可有多个

  1. CREATE TABLE `表名`(
  2. `GradeID` INT(11) AUTO_INCREMENT PRIMARY KEY ,
  3. `GradeName` VARCHAR(32) NOT NULL UNIQUE,
  4. # 或 UNIQUE KEY `GrideID` (`GrideID`)
  5. ) ;

常规索引( INDEX )

快速定位特定数据,INDEX 和 KEY 关键字都可设置常规索引,加在查找条件的字段上

  1. # 创建表时添加
  2. CREATE TABLE `表名`(
  3. INDEX/KEY `ind` (`studentNO`, 'subjectNO')
  4. ) ;
  5. # 创建后追加
  6. ALTER TABLE `表名` ADD INDEX `索引名` (`studentNO`, 'subjectNO') ;

不宜添加太多常规索引,影像数据的插入、删除和修改操作

全文索引( FULLTEXT )

只能用于 MyISAM 类型的数据表和大型数据集

  1. CREATE TABLE `表名`(
  2. FULLTEXT (`studentNO`, 'subjectNO')
  3. ) ENGINE=MUISAM ;

只能用于 CHAR、VARCHAR、TEXT 数据列类型

删除索引

  1. DROP INDEX 索引名/字段 ON 表名 ;

补充

索引不取索引名称,默认使用列名就是索引名