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;
  • 相关阅读:
    mouse_event模拟鼠标滚轮
    润乾报表配置技术路线
    建筑 物件 开心背单词 读句子,单词,字母,看图例, 翻译,看动画
    文字过渡动画,曲线过渡动画,,使用这个插件assign shape keys
    运动锻炼 开心背单词 读句子,单词,字母,看图例, 翻译,看动画,学英语,轻松背单词,简单背单词
    blender293 内置插件 精度绘画控件,PDT学习003,pdt tangents 切线
    日常用品 背单词 读句子 看图片 读单词 读字母 翻译, 看动画 学英语
    blender293 内置插件 精度绘画控件,PDT学习 precision drawing tools
    乔布斯 背单词 02 读句子 单词 字母 翻译,看动画 学英语 名言 我菜顾我在,我菜故我在,blender加python
    狐狸 和 乌鸦 英语 朗读句子 背单词
  • 原文地址:https://www.cnblogs.com/linbin7/p/11930737.html
Copyright © 2011-2022 走看看