精华内容
下载资源
问答
  • SQL Server的条件索引、include索引

    千次阅读 2018-01-24 10:23:13
    SQL Server中创建索引时,有2个...加上where子句,创建的索引就是条件索引,索引中只包含满足条件的数据,这样会使得索引的体积更小,不管是索引扫描,还是查找,需要访问的页数也就更少。 举例: create in

    SQL Server中创建索引时,有2个比较特殊的关键字: where 、include。


    (1)什么是条件索引呢?

    where顾名思义,就和sql语句中的where是一个意思,起到过滤作用。

    加上where子句,创建的索引就是条件索引,索引中只包含满足条件的数据,这样会使得索引的体积更小,不管是索引扫描,还是查找,需要访问的页数也就更少。


    举例:

    create index idx_A on A(name) 

    where biz_date >='2017-01-01'

    这个索引中,只包含biz_date大于等于2017-01-01的数据。


    (2)include包含索引

    include是包含的意思,加上include子句,可以指定多个列,也就是说在这个索引中会包含include中指定的列。


    举例:

    create index idx_A on A(biz_date)  include(name,id)

    这个索引中,include包含了name,id 两个字段。


    (3)那么这种索引和直接指定 biz_date,name,id的索引,有什么区别呢?

    区别在于 include中的列,是不排序的,一般可以把select中的列,放到include中,好处是索引的开销相对小了。

    如果是在where中的列,就不适合放到include子句中,因为这样不利于快速查找过滤数据。



    展开全文
  • 在SQL Server中创建条件索引

    千次阅读 2017-10-11 14:22:08
    这篇文件主要介绍使用T-SQL在SQL Server中创建条件索引条件索引是一个优化了非聚集索引,特别适合特定数据子集的数据查询。条件索引就是使用过滤条件来索引部分表格数据。一个设计良好的条件索引可以查询的性能,...

    这篇文件主要介绍使用T-SQL在SQL Server中创建条件索引。条件索引是一个优化了非聚集索引,特别适合特定数据子集的数据查询。条件索引就是使用过滤条件来索引部分表格数据。一个设计良好的条件索引可以查询的性能,并减少索引存储的大小。

    一、条件索引有如下的好处:

    • 提高查询性能和计划质量
    • 减少索引维护成本
    • 减少索引存储成本

    二、设计需要考虑的事情

    1、当一列只查询少数数据值的时候,你可以创建这些数据值的子集。

    2、当表有异构数据库行的时候,可以为多个数据种类创建条件查询。


    三、限制

    1、不能在视图上创建条件索引

    2、条件索引有如下好处:

    • 减少索引维护成本:查询处理器使用更少的CPU资源来更新条件索引
    • 提升计划质量:查询优化器优先考虑条件索引
    • 在线索引重建:条件索引可以在线重建,而索引的视图不能在线重建
    • 非唯一索引:条件索引可以不是唯一索引

    3、只支持简单比较操作

    4、如果过滤索引表达式同查询谓词,且不返回条件索引中的列,则条件索引表达式中的列不必是主键,也不必是包含列

    5、如果查询谓词使用的比较列不同于条件索引表达式,则条件索引表达式中的列必须是主键或者包含列

    6、如果列在查询结果里面,则条件索引表达式中的列必须是主键或者包含列

    7、表格的聚集索引不必是主键或包含列,聚集索引自动包含在非聚集索引中,包括条件索引


    四、创建条件查询

    use AdventureWorks2012

    go

    create nonclustered index FilterBillOfEndDateIndex

    on ProductionBillOfMaterials(ComponentID, StartDate)

    where EndDate is not null;

    GO


    五、使用条件查询

    use AdventureWorks2012

    go

    SELECT ProductAssemblyID, ComponentID, StartDate   
    FROM Production.BillOfMaterials  
    WHERE EndDate IS NOT NULL   
        AND ComponentID = 5   
        AND StartDate > '01/01/2008' ;  
    GO


    6、在查询中指定条件索引

    use AdventureWorks2012

    go

    select ComponentID, StartDate from Production.BillOfMaterials

    with(index(FilterBillOfEndDateIndex))

    where EndDate in ('20000085', '2000000', '20000918');

    GO



    展开全文
  • Oracle如何创建条件索引

    千次阅读 2018-07-23 17:39:26
    首先讲述一个业务场景: 数据库商品表中有goods_id,goods_name,goods_price,status四个字段...如果状态不为1则设定唯一索引为goods_name,goods_id 这样,便可以随意插入状态为0的,商品名称相同的数据了。

    首先讲述一个业务场景:

    数据库商品表中有goods_id,goods_name,goods_price,status四个字段,goods_id是自增主键,status是状态,只有0,1两种可能,默认为1,goods_name是商品名称。要求状态为1 的商品名称不允许重复,状态为0的可以无限重复。

    首先创建表:

    -- Create table
    create table TB_GOODS
    (
      goods_id    VARCHAR2(64) not null,
      goods_name  VARCHAR2(256) not null,
      goods_price VARCHAR2(64) not null,
      status      VARCHAR2(1) not null
    );
    
    -- Create/Recreate primary, unique and foreign key constraints 
    alter table TB_GOODS
      add constraint PK_TB_GOODS primary key (GOODS_ID);

    如何实现业务场景:

    -- Create/Recreate indexes 
    create unique index TB_GOODS_UNIQUE_INDEX on TB_GOODS (GOODS_NAME, DECODE(TO_NUMBER(STATUS),1,STATUS,GOODS_ID));

    通过使用Oracle提供的decode函数实现:

    如果状态为1则设定唯一索引为goods_name,status

    如果状态不为1则设定唯一索引为goods_name,goods_id

    这样,便可以随意插入状态为0的,商品名称相同的数据了。

    展开全文
  • 其中, 处理Excel表格中, 最常用的就是按条件提取出表格中的某些特征的内容; 对于的, 就要用到python的索引功能; 以下是要实操的案例数据中的一部分 CardCount Type TermNo OperNo Dept 818 消费 ...

    python在处理Excel表格中, 功能非常强大, 几乎可以说是为所欲为; 其中, 处理Excel表格中, 最常用的就是按条件提取出表格中的某些特征的内容; 对于的, 就要用到python的索引功能; 以下是要实操的案例数据中的一部分

    CardCountTypeTermNoOperNoDept
    818消费49235第一食堂
    814消费6327第二食堂
    820消费6327第二食堂
    211消费196133好利来食品店
    209消费14648好利来食品店
    210消费16912第三食堂
    212消费16912第三食堂
    213消费16912第三食堂
    676存款202143财务处
    673消费41249第四食堂
    677消费41249第四食堂
    672消费61252第四食堂
    678消费61252第四食堂
    679消费61252第四食堂
    680消费175247第四食堂
    674消费19236第一食堂
    675消费49235第一食堂
    782消费427第二食堂
    780消费5927第二食堂
    784消费8727第二食堂
    785消费18627第二食堂
    781消费727第二食堂
    任务:  将Dept这一列中,提取出一,二食堂构成新的表格
    import os
    import pandas as pd
    
    os.chdir(r"D:\")
    
    
    def duty2_1():
       
        data2 = pd.read_csv("task1_1_2.csv") # 导入数据
       
        # 取出'Dept'这一列
        data2_Dept = data2['Dept']
        
        # 查看'Dept'这一列分类情况  # 结果为有6个类别的食堂
        print(data2_Dept.value_counts())
    
        # 取出'Dept'这一列所有食堂的行,构建新的DF: data_canteen
    
        data_canteen = data2[(data2['Dept']=='第一食堂') | (data2['Dept']=='第二食堂')][['CardNo','Dept']]    # (data2['Dept']=='第一食堂') 表示提取出Dept列中'第一食堂'所在的所有行
        # (data2['Dept']=='第二食堂') 表示提取出Dept列中'第二食堂'所在的所有行
        # ['CardNo','Dept']表示Dept取出这一列
        # | 是逻辑符号: 或
    
        print(data_canteen)
    
    
    

    用法总结:df[(列满足的条件)逻辑符号(列满足的条件)逻辑符号()][]

     

    展开全文
  • pandas里的loc并列条件索引

    千次阅读 2017-10-16 16:19:25
    def Family_feature(df): df['Fam_Size'] =df['SibSp']+df['Parch'] df['Fam_Size'].loc[df['Fam_Size'] == 0] = 1 df['Fam_Size'].loc[(df['Fam_Size'] > 1) & (df['Fam_Size'] )] = 2 # df['F
  • mysql 联合索引生效的条件索引失效的条件

    万次阅读 多人点赞 2019-02-23 10:11:30
    1.联合索引失效的条件 联合索引又叫复合索引。两个或更多个列上的索引被称作复合索引。 对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key...
  • 详述 Elasticsearch 通过范围条件查询索引数据的方法

    万次阅读 多人点赞 2019-04-05 11:15:59
    在使用 Elasticsearch 的时候,我们可能会遇到需要**以范围为条件查询索引数据**的需求。有两种方法可以实现我们的需求: - 第一种:在服务器或者终端,使用命令来查询索引数据; - 第二种:编写程序,通过 Elastic...
  • 2.频繁作为查询条件的字段应该创建索引; 3.查询中与其他表有关联的字段,例如外键关系; 4.频繁更新的字段不适合创建索引,因为每次更新不单单是更新记录,还会更新索引,保存索引文件; 5.where条件里用不到的...
  • Oracle小于条件导致索引失效

    千次阅读 2020-07-13 11:34:37
    ORACLE建索引的小发现基础索引建立创建一般索引创建唯一索引对订单表的ACCT_DATE进行查询:小于条件的执行计划: (小于等于执行计划与小于一样)SQL:执行计划:大于条件的执行计划: (大于等于执行计划与大于一样)SQL:...
  • 索引失效的条件

    千次阅读 2018-03-08 08:55:14
    条件中用or,即使其中有条件索引,也不会使用索引查询(这就是查询尽量不要用or的原因,用in吧)注意:使用or,又想索引生效,只能将or条件中的每个列都加上索引2.对于多列索引,不是使用的第一部分,则不会使用...
  • 几乎所有的小伙伴都可以随口说几句关于创建索引的优缺点,也知道什么时候创建索引能够提高我们的查询性能,什么时候索引会更新,但是你有没有注意到,即使你设置了索引,有些时候索引他是不会生效的!这不仅考察了...
  • mysql where 条件后面索引

    千次阅读 2020-02-15 21:30:24
    假设有组合索引 index(a,b,c) where a = 3 用到索引 a where a = 3 and b = 3 用到索引 a,b where a = 3 and b = 4 and c = 5 用到索引 a,b,c where b = 3 或者 where b = 3 and c = 4 或者 where c = 4 索引...
  • MySQL 索引条件下推

    千次阅读 2019-01-31 16:09:02
    一 什么是“索引条件下推” “索引条件下推”,称为Index Condition Pushdown (ICP),这是MySQL提供的用某一个索引对一个特定的表从表中获取元组”,注意我们这里特意强调了“一个”,这是因为这样的索引优化...
  • Mysql复合索引最左匹配原则以及索引失效条件复合索引最左匹配原则用EXPLAIN 来查看语句是否用到了索引索引失效的条件一般性建议 复合索引最左匹配原则 复合索引又叫联合索引。两个或更多个列上的索引被称作复合索引...
  • MySQL 使用 OR 条件导致索引失效

    千次阅读 2020-07-22 22:04:00
    MySQL 使用 OR 条件导致索引失效
  • Mysql 索引使用条件

    千次阅读 2018-07-23 16:11:47
    数据库中索引的结构是一种排序的数据结构。 2>数据库索引是通过B树和变形的B+树实现的。 3>什么情况下不适合建立索引?  1.对于在查询过程中很少使用或参考的列,不应该创建索引。  2.对于那些...
  • 多个单列索引和联合索引的区别详解

    万次阅读 多人点赞 2018-06-24 17:40:58
    那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下。 一、联合索引测试 注:Mysql版本为 5.7.20 创建测试表(表记录...
  • mysql索引详解

    万次阅读 多人点赞 2021-07-07 21:40:09
    分别为:表定义文件、数据文件、索引文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex)。 InnoDB:所有的表都...
  • —— 查询条件中等于、大于或小于条件索引中的顺序对性能的影响 一、准备测试表和数据 use test go create table tradeDetail( id int identity(1,1) ,productId int ,tradedate datetime ,[description] ....
  • 索引

    千次阅读 多人点赞 2018-09-07 23:27:20
    索引是一种对数据库表中一列或多列的值进行排序的一种数据存储结构。 需要占用磁盘空间。 类型:普通索引,唯一索引,主键索引,复合索引,聚族索引。 唯一索引:不允许具有索引值相同的行,即每一行数据的索引的...
  • 我们上一篇介绍了索引基本操作,通过db.collection.createIndex(keys, options)语法创建索引,我们继续介绍地理空间索引索引的限制,使我们在MongoDB时能提高查询效率。
  • 联合索引优化多条件查询

    万次阅读 2016-07-19 00:39:31
    现在数据表myIndex中i_testID是主键列,其他列无任何索引:多条件查找名字为xiaoming,城市为beijing,年龄为21的人:返回了一行数据,从执行计划中看到,查询没有使用任何索引,进行了全表扫描,磁盘IO大
  • 创建索引条件和注意事项

    千次阅读 2016-09-21 12:16:14
    索引的理解和创建索引应该注意的条件
  • 我们容易有以一个误区,就是在经常使用的查询条件上都建立索引索引越多越好,那到底是不是这样呢? 在讲正文之前,我们先来看一个重要的属性列的离散度,公式如下: count(distinct(column_name)) : count(*) --列...
  • 有些 where 条件会导致索引无效

    千次阅读 2018-09-17 21:52:56
    在查询中,WHERE 条件也是一个比较重要的因素...有些 where 条件会导致索引无效:  1.where 子句的查询条件里有!=,MySQL 将无法使用索引。  2.where 子句使用了 Mysql 函数的时候,索引将无效,比如:selec...
  • sql sever 创建带条件的唯一性索引

    千次阅读 2015-04-10 14:14:44
    查找了两天,终于解决了sql sever 创建带条件的唯一性索引,mark一下。 带条件的复合索引 索引字段 (a,b,c,d) 条件 a不为空的时候,(a,b,c,d)组成的复合索引唯一 a为空时,不做限制 代码如下:IF ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 630,866
精华内容 252,346
关键字:

条件索引