`
canofy
  • 浏览: 829768 次
  • 性别: Icon_minigender_1
  • 来自: 北京、四川
社区版块
存档分类
最新评论

IN与EXISTS和INNER JOIN执行效率

阅读更多

主要是查询日志里面的数据个数,过滤掉一些非法ip,手机上的,因此存在非法ip一说,呵呵

log_pv里面的数据有3000多,而t_ipnetlist表里有移动网关ip45000条左右。

select count(id) from log_pv where (issue_id=1042 or issue_id=1044 ) and  exists (select ip from t_ipnetlist where log_pv.ip=t_ipnetlist.ip)

select count(id) from log_pv where (issue_id=1042 or issue_id=1044 ) and  log_pv.ip in (select ip from t_ipnetlist )

select count(id) from log_pv as t1 INNER JOIN  t_ipnetlist as t2 on  t1.ip=t2.ip where t1.issue_id=1042 or t1.issue_id=1044

in数据量少效率还可以,数据量大就效率低
exists的效率依赖于匹配度。
inner join效率比较稳定。
分享到:
评论
1 楼 winstonczc 2010-05-02  
exists的效率依赖于匹配度,是指什么?

相关推荐

    PostgreSQL IN vs EXISTS vs ANYALL vs JOIN性能分析

    在应用目标上,以pgbench_accounts和pgbench_branches为例,我们可以通过四种不同的方式编写查询语句:使用IN子句、使用ANY子句、使用EXISTS子句和使用INNER JOIN。每种方式都有其特点和适用场景。例如,当需要判断...

    搞懂mysql的exists

    在理解`EXISTS`的使用时,我们需要深入探讨其工作原理、优缺点以及与其他查询操作(如`IN`、`JOIN`)的对比。 一、`EXISTS`的基本用法 `EXISTS`子句通常与子查询一起使用,形式如下: ```sql SELECT column1, ...

    sql server2005 exists使用方法

    - 在涉及多层嵌套的情况下,仔细分析查询逻辑,尝试简化结构以提高可读性和执行效率。 - 使用 `EXISTS` 代替 `IN` 可能会在某些场景下带来更好的性能提升,尤其是在处理大型数据集时。 总之,`EXISTS` 子句是 SQL ...

    sql执行效率

    - **使用EXISTS和NOT EXISTS**:在某些情况下,使用EXISTS和NOT EXISTS替代IN和NOT IN可以提高查询性能,特别是在子查询返回大量行时。 #### 8. 使用条件表达式替代常量比较 - **避免不必要的计算**:如`WHERE SAL...

    简述Oracle中in和exists的不同

    在Oracle数据库中,`IN`和`EXISTS`都是用于子查询的比较操作符,但它们在执行方式和性能上存在显著差异。许多人误以为`EXISTS`总是比`IN`更快,但实际情况并非如此,具体表现取决于数据的分布和索引的利用。 1. **...

    罗炳森-SQL等价改写核心思想

    在优化这类查询时,同样可以利用转换来提高效率,例如将NOT IN替换为LEFT JOIN和NULL检查,或者将NOT EXISTS替换为OUTER JOIN。 此外,标量子查询(Scalar Subquery)在SQL等价改写中也有重要作用,它可以用于表示...

    浅析Mysql Join语法以及性能优化

    MySQL中的JOIN操作是数据库查询中不可或缺的部分,它用于在多个表之间建立关联,获取符合特定条件的数据。在本文中,我们将深入...通过合理利用索引、优化JOIN结构和精简查询逻辑,可以显著提高MySQL查询的执行效率。

    经典SQL语句

    然而,它们在执行效率上存在显著差异,主要取决于数据集的大小及索引的存在情况。 - **`IN`关键字**:当子查询返回的结果集较小或有有效的索引时,使用`IN`关键字通常能提供较快的响应速度。例如,`SELECT * FROM A...

    sql优化sql优化sql优化sql优化sql优化

    3. **选择正确的JOIN类型**:INNER JOIN、LEFT JOIN、RIGHT JOIN等各有优劣,根据业务需求选择最合适的JOIN类型能有效减少计算量。 4. **避免使用SELECT ***:指定需要的具体列而不是使用通配符(*),可以减少数据...

    高性能:有哪些常见的 SQL 优化手段?

    3. 使用 EXISTS 替换 IN:EXISTS通常比IN更高效,尤其是当子查询返回大量数据时。 4. 避免在 WHERE 子句中对字段进行 NULL 检查:NULL值不会被索引覆盖,可以考虑使用COALESCE或IFNULL函数。 三、合理使用JOIN操作 ...

    A Guide to SQL, Eighth Edition.ppt

    在第八版的《A Guide to SQL》中,深入探讨了如何查询多个表、使用JOIN、IN和EXISTS操作符,以及子查询和别名的应用。以下是这些主题的详细解释: 1. **多表查询**: 多表查询允许从两个或更多表中检索数据,这是...

    如何写高效sql语句

    - 将常用的查询封装成存储过程,可以提高执行效率,减少网络通信。 - 存储过程中的变量和条件判断也能帮助减少重复计算。 9. **保持数据库和应用程序同步** - 确保数据库设计与应用程序的查询需求相匹配,避免因...

    常见SQL数据库面试题和答案(一)共4页.pdf.zip

    4. JOIN操作:熟悉INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN,以及如何在不同表之间进行数据联接。 5. 子查询:掌握嵌套查询的使用,以及IN、NOT IN、EXISTS、NOT EXISTS子查询的应用。 6. 分区与索引:理解...

    SQL语句效率优化技巧

    5. **使用EXISTS替代IN**:在条件表达式中,使用EXISTS通常比使用IN更高效,特别是当子查询返回大量数据时。 6. **分组与聚合函数**:使用GROUP BY时,确保所有GROUP BY列都有索引。使用HAVING代替WHERE进行过滤,...

    accp5.0 SQL SERVER数据库设计和高级查询 总结PPT

    在查询方面,SQL Server支持多种联接类型,如内联接(INNER JOIN)、左外联接(LEFT JOIN)、右外联接(RIGHT JOIN)、完整外联接(FULL JOIN)和交叉联接(CROSS JOIN)。子查询用于在查询中嵌套其他查询,如IN和...

    老司机总结的12条 SQL 优化方案(非常实用).docx

    IN 和 EXISTS 的使用场景不同,应该根据实际情况选择使用哪一种。 10. 优化 Group By 语句 Group By 语句的优化可以提高查询效率。 11. 尽量使用数字型字段 使用数字型字段可以提高查询效率。 12. 优化 Join ...

    Oracle-SQL-statements-efficiency.rar_oracle

    本资料“Oracle的SQL语句执行效率问题查找与解决方法”聚焦于如何识别和优化可能导致性能瓶颈的SQL语句。 一、性能问题识别 1. **SQL Profiling**:Oracle提供了SQL Profiling工具,通过分析SQL执行过程中的时间...

    Oracle数据库优化

    Oracle数据库优化是一个复杂而关键的任务,它涉及到一系列策略和技巧,旨在提高数据库性能,降低资源消耗,提升代码执行效率。以下是一些针对Oracle数据库优化的关键点: 1. 减少数据库访问次数:频繁的数据库访问...

    SQL语句优化技术分析

    综上所述,通过对LIKE操作符、UNION操作符以及IN操作符的合理使用和优化,可以显著提高SQL语句的执行效率。在实际应用中,应根据具体情况灵活选择和调整优化策略,以达到最佳性能。此外,还应定期审查和调整数据库...

Global site tag (gtag.js) - Google Analytics