索引

来源:互联网 发布:淘宝比价软件推荐 编辑:程序博客网 时间:2024/05/23 01:18

索引

索引的引入

索引定义:索引是由数据库表中一列或者多列组合而成,其作用是提高对表中数据的查询速度;
类似于图书的目录,方便快速定位,寻找指定的内容;

索引的优缺点

  • 优点:提高查询数据的速度;
  • 缺点:创建和维护索引的时间增加了;

索引的分类

  • 1,普通索引

    这类索引可以创建在任何数据类型中;

  • 2,唯一性索引

    使用 UNIQUE 参数可以设置,在创建唯一性索引时,限制该索引的值必须是唯一的;

  • 3,全文索引

    使用 FULLTEXT 参数可以设置,全文索引只能创建在 CHAR,VARCHAR,TEXT 类型的字段上。主要作用
    就是提高查询较大字符串类型的速度;只有 MyISAM 引擎支持该索引,Mysql 默认引擎不支持;

  • 4,单列索引

    在表中可以给单个字段创建索引,单列索引可以是普通索引,也可以是唯一性索引,还可以是全文索引;

  • 5,多列索引

    多列索引是在表的多个字段上创建一个索引;

6,空间索引

使用 SPATIAL 参数可以设置空间索引。空间索引只能建立在空间数据类型上,这样可以提高系统获取空间数
据的效率;只有 MyISAM 引擎支持该索引,Mysql 默认引擎不支持;

创建索引

  • 创建表的时候创建索引

    CREATE TABLE 表名 (属性名 数据类型 [完整性约束条件],属性名 数据类型 [完整性约束条件],....属性名 数据类型[UNIQUE | FULLTEXT | SPATIAL ] INDEX| KEY[别名] (属性名 1 [(长度)] [ASC | DESC]));
  • 创建普通索引

    CREATE TABLE t_user1(id INT ,             userName VARCHAR(20),             PASSWORD VARCHAR(20),             INDEX (userName)         );
  • 创建唯一性索引

    CREATE TABLE t_user2(id INT ,             userName VARCHAR(20),             PASSWORD VARCHAR(20),             UNIQUE INDEX index_userName(userName)         );
  • 创建全文索引

  • 创建单列索引
  • 创建多列索引

    CREATE TABLE t_user3(id INT ,             userName VARCHAR(20),             PASSWORD VARCHAR(20),             INDEX index_userName_password(userName,PASSWORD)         );
  • 创建空间索引

在已存在的表上创建索引

    CREATE [ UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名    ON 表名 (属性名 [(长度)] [ ASC | DESC]);
  • 普通索引

    CREATE  INDEX index_userName ON t_user4(userName);
  • 唯一索引

    CREATE  UNIQUE INDEX index_userName ON t_user4(userName);
  • 多列索引

    CREATE  INDEX index_userName_password ON t_user4(userName,PASSWORD);

用 ALTER TABLE 语句来创建索引

 ALTER TABLE 表名 ADD [ UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名 (属性名 [(长度)] [ ASC | DESC]);
  • 普通索引
    ALTER TABLE t_user5 ADD INDEX index_userName(userName);

  • 唯一索引
    ALTER TABLE t_user5 ADD UNIQUE INDEX index_userName(userName);

  • 多列索引
    ALTER TABLE t_user5 ADD INDEX index_userName_password(userName,PASSWORD);

删除索引

    DROP INDEX 索引名 ON 表名 ;

例子

DROP INDEX index_userName ON t_user5;DROP INDEX index_userName_password ON t_user5;
原创粉丝点击