0 0

exists该如何优化5

判断A表ID   在B表是否存在
A表                           B表
ID   name                   ID         AID     Date
1     aaa                     1001       1       2010-04-20
2     bbb                     1002       1       2010-04-21
3     ccc                     1003       2       2010-04-20
                              1004       2       2010-04-21
                              1005       2       2010-04-22

现在用的sql语句:
select   id   from   A  
where   exists(select   null   from   B
                          where   A.ID   =   B.AID
                          and   B.Date   >   '2010-04-20 '   and   B.Date   <   '2010-06-20 ')

当表B里面的记录超过30万的时候,查询要10几秒,
请教大家,这个语句应该怎么优化,或者有什么别的办法实现这样的功能??
2010年4月29日 22:19

1个答案 按时间排序 按投票排序

0 0

where   A.ID   =   B.AID
                          and   B.Date   >   '2010-04-20 '   and   B.Date   <   '2010-06-20 '

这句,是具体情况把能够过滤记录数最多的表达式排在前面。。。

2010年5月14日 10:22

相关推荐

    EXISTS_和_NOT_EXISTS

    在SQL查询中,`EXISTS` 和 `NOT EXISTS` 子句是两个非常重要的条件运算符,用于在数据检索时筛选满足特定条件的记录。它们主要用于子查询,帮助我们检查主...通过灵活运用这些工具,可以优化查询性能并获取所需的信息。

    sql exists和not exists用法

    1. **联表查询优化**:在复杂的联表查询中,可以利用`EXISTS`来优化查询性能。 ```sql SELECT A.*, B.* FROM A LEFT JOIN B ON A.id = B.aid WHERE EXISTS (SELECT 1 FROM C WHERE A.id = C.id); ``` 2. **...

    INEXISTS与NOT INNOT EXISTS 的优化原则小结

    在SQL查询优化中,`IN`、`EXISTS`、`NOT IN`和`NOT EXISTS`是四个常见的比较和过滤条件,它们在不同场景下有不同的性能表现。以下是对这些操作符优化原则的详细说明: 1. **EXISTS的执行流程**: `EXISTS` 子查询...

    in和exists的区别

    在优化查询性能时,理解这两个关键字的工作原理并根据实际数据分布选择合适的方法至关重要。通常,当子查询返回的行数较少时,"IN"可能是更好的选择;而当子查询可能返回大量数据,且主查询的数据量较小时,"EXISTS...

    IN&amp;EXISTS与NOT IN&amp;NOT EXISTS 的优化原则小结

    - 在某些情况下,可以考虑使用外连接或`IS NULL`结合`NOT IN`来替代`NOT EXISTS`,尤其是在基于成本的优化器中,这可能带来更好的性能。 6. 总结: `IN`和`EXISTS`主要取决于哪个查询能更快地返回结果,而`NOT IN...

    SQL语句优化——in,not in,exists,not exists, left join...on博客所需SQL语句.txt

    SQL语句优化——in,not in,exists,not exists, left join...on博客所需SQL语句.txt欢迎下载!

    sql语句优化之用EXISTS替代IN、用NOT EXISTS替代NOT IN的语句

    SQL语句优化之用EXISTS替代IN、用NOT EXISTS替代NOT IN的语句 SQL语句优化是数据库性能优化的重要方面之一。在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接。在这种情况下,使用EXISTS...

    搞懂mysql的exists

    五、优化`EXISTS`的使用 1. 使用索引:确保子查询中的关键列有合适的索引,以提高查询速度。 2. 避免全表扫描:尽量使子查询的条件尽可能具体,减少需要扫描的数据量。 3. 优先考虑`EXISTS`:在比较多个潜在查询方法...

    MYSQL IN 与 EXISTS 的优化示例介绍

    在SQL查询优化中,`IN` 和 `EXISTS` 子句经常被用来过滤结果集,但它们在执行效率上存在显著差异。了解这些差异并根据数据集的大小选择合适的子句是数据库性能调优的关键。 ### `IN` 与 `EXISTS` 原理 `IN` 子句...

    in和exists性能解析

    此外,考虑到数据库查询优化器的智能,有时即使代码中使用了`IN`,优化器也会自动转换为`EXISTS`的形式以提升性能。因此,理解并灵活运用这两种子句,对于提高数据库查询效率至关重要。 通过以上分析,我们不难看出...

    SQL里的EXISTS与IN

    根据给定的信息,本文将详细解析`EXISTS`与`IN`的区别以及如何在SQL优化过程中将`IN`转换为`EXISTS`来提高查询性能。 ### SQL优化需求背景 在系统开发与维护的过程中,经常会出现SQL查询效率低下、响应时间过长等...

    SQL复习-EXISTS谓词

    五、优化EXISTS的使用 - 避免在子查询中使用聚合函数,如COUNT(),因为这可能导致全表扫描。 - 尽可能使子查询的执行速度快,例如通过添加索引或优化查询条件。 - 如果子查询的结果集较大,考虑使用IN代替EXISTS,...

    sql case when exists not exists in not in

    在SQL查询中,`CASE WHEN`、`EXISTS`、`NOT EXISTS`以及`IN`和`NOT IN`是常用的操作符,它们用于处理复杂的条件判断和数据筛选。这些概念对于理解和编写高效的SQL语句至关重要,尤其是在数据分析和数据库管理中。 `...

    in和exists的区别与执行效率问题解析

    标题和描述均聚焦于SQL查询语句中"IN"与"EXISTS"的区别及执行效率问题,这是一个在数据库操作中非常关键的话题,尤其对于优化查询性能有着不可忽视的作用。下面,我们将深入探讨这两种语句的不同之处及其对执行效率...

    经典SQL查询总结关于Exists,not Exists.in ,not in效率的说明。

    ### 经典SQL查询总结关于Exists, not Exists, IN, not IN 效率的说明 在数据库查询操作中,存在着多种方法来实现相似的功能,但不同的实现方式在性能上可能会有显著差异。本文将深入探讨 SQL 中 `EXISTS`, `NOT ...

    mysql多表查询和EXISTS查询性能对比

    ### MySQL多表查询和EXISTS查询性能对比 #### 测试环境 在进行MySQL多表查询与EXISTS查询的性能对比之前,首先需要了解测试环境的相关配置。虽然原文中并未给出具体的测试环境细节,但在实际操作中,这一步骤至关...

    详解SQL EXISTS 运算符

    理解`EXISTS`和`NOT EXISTS`的用法对于优化SQL查询非常重要,因为它们通常比使用`IN`或`JOIN`操作符更有效率,特别是在处理大量数据时。`EXISTS`主要关注记录是否存在,而不需要返回具体的值,这使得它在处理复杂...

    SQL语句优化——in,not in,exists,not exists, left join...on博客所需SQL语句2.txt

    SQL语句优化——in,not in,exists,not exists, left join...on博客所需SQL语句2.txt,欢迎下载!

    “exists”和“in”的效率问题

    ### "Exists"与"In"的效率...通过合理选择,可以有效提升SQL查询的执行效率,从而优化应用程序的整体性能。 通过以上详细的分析可以看出,在实际应用中灵活运用这两种查询方式,能够显著提高数据库查询的效率和性能。

Global site tag (gtag.js) - Google Analytics