• SQL SERVER数据库索引(学习笔记)


    定义:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。

     

    优点与缺点:建立索引的目的是加快对表中记录的查找排序。

          为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。

     

    可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引

     唯一索引 唯一索引是不允许其中任何两行具有相同索引值的索引。

     

      当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在employee表中职员的姓(lname)上创建了唯一索引,则任何两个员工都不能同姓。

     

      主键索引

     

      数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。

     

      在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。

     

      聚集索引

     

      在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。

     

      如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。

     

    实例:

    CREATE TABLE mytable(

     

      idserial primary key,

     

      category_id int not null default0,

     

      user_id int not null default0,

     

      adddate int not null default0 

      );

    如果在查询时常用类似以下的语句: 

      SELECT * FROM mytable WHERE category_id=1; 

      最直接的应对之道,是为category_id建立一个简单的索引: 

      CREATE INDEX mytable_categoryid ON mytable (category_id);

      SELECT * FROM mytable WHERE category_id=1 AND user_id=2;

      第一反应可能是,再给user_id建立一个索引。不好,这不是一个最佳的方法。可以建立多重的索引。

       CREATE INDEX mytable_categoryid_userid ON mytable(category_id,user_id);

     

    SELECT * FROM mytable 

      WHERE category_id=1 AND user_id=2 

      ORDER BY add date DESC; 

      很简单,就象为where字句中的字段建立一个索引一样,也为ORDERBY的字句中的字段建立一个索引: 

      CREATE INDEX mytable_categoryid_userid_adddate ON mytable (category_id,user_id,adddate);

  • 相关阅读:
    通过抓取pintpoint2的页面信息把数据存入数据库python3
    jenkins 2.282+Publish over ssh 1.22版本发布日志不能实时显示
    ELKF搭建
    pinpoint2.0.2 定制开发--增加钉钉群通知、@到具体个人,解决手机号码无法输入BUG、删除客户端需要认证、查看数据日期范围扩大等。
    通过命令行通知RANCHER重新部署程序。
    Jenkins rancher cli 配置
    centos7 outlook mailx配置
    创业公司使用的敏捷GIT FLOW管理方式(多BUG、多项目多环境,多任务并发开发,支持需求多变)
    Dubbo Admin 2.6.2 版本连接zk 集群的连接字符串配置
    jenkins典型配置-多分支选择
  • 原文地址:https://www.cnblogs.com/fjzhang/p/2487530.html
Copyright © 2020-2023  润新知