zoukankan      html  css  js  c++  java
  • 索引

    索引的引入

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

    索引的优缺点

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

    MySQL常用的索引

    普通索引INDEX:加速查找
    
    唯一索引:
        -主键索引PRIMARY KEY:加速查找+约束(不为空、不能重复)
        -唯一索引UNIQUE:加速查找+约束(不能重复)
    
    联合索引:
        -PRIMARY KEY(id,name):联合主键索引
        -UNIQUE(id,name):联合唯一索引
        -INDEX(id,name):联合普通索引
    #我们可以在创建上述索引的时候,为其指定索引类型,分两类
    hash类型的索引:查询单条快,范围查询慢
    btree类型的索引:b+树,层数越多,数据量指数级增长(我们就用它,因为innodb默认支持它)
    
    #不同的存储引擎支持的索引类型也不一样
    InnoDB 支持事务,支持行级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;
    MyISAM 不支持事务,支持表级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;
    Memory 不支持事务,支持表级别锁定,支持 B-tree、Hash 等索引,不支持 Full-text 索引;
    NDB 支持事务,支持行级别锁定,支持 Hash 索引,不支持 B-tree、Full-text 等索引;
    Archive 不支持事务,支持表级别锁定,不支持 B-tree、Hash、Full-text 等索引;

    创建索引

      创建表的时候创建索引:

      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;
  • 相关阅读:
    linux常用命令
    Win10正式版快捷键大全,Win10快捷组合键汇总
    cmd命令大全
    Wordpress目录结构
    dedecms目录结构,非常全
    wordpress文件系统结构
    WordPress数据库及各表结构
    网站跳转代码的实现途径
    主机屋----常用程序安装链接数据库教程
    CMS问答错误提示 ----------Deprecated: Function set_magic_quotes_runtime() is deprecated in D:wwwrootxianfanetwwwrootaskincludecommon.inc.php on line 15
  • 原文地址:https://www.cnblogs.com/linbin7/p/11930737.html
Copyright © 2011-2022 走看看