`

两条速度相差1350倍的sql语句

阅读更多
select *from RESOURCES where  RES_STATUS = 1 and PLATFORM_FLAG=1 and  RES_ID in
    (select RES_ID from DOWNLOADRECORDS where DOWNLOADRECORDS_TIME > DATE_SUB(now(),INTERVAL 7 DAY) 
    group by RES_ID order by COUNT(*) desc ) limit 1, 10;

 这条语句查处结果需要20250毫秒

  select bb.* from (select * from DOWNLOADRECORDS where DOWNLOADRECORDS_TIME > DATE_SUB(now(),INTERVAL 7 DAY) group by RES_ID order by COUNT(*) desc limit 1,10) as aa,RESOURCES as bb  where aa.RES_ID=bb.RES_ID  and bb.RES_STATUS = 1 and bb.PLATFORM_FLAG=1;

 

这条语句只需要15毫秒

 

 

相同的环境下,查出相同的结果速度相差1000倍

0
2
分享到:
评论
6 楼 xuehanxin 2012-01-29  
被骂了号,偶一定记住各位大哥的话
5 楼 lei_1021 2012-01-14  
废话,这效率当然不一样了,一个是两张表连接查询,一个是一张表每条记录在另一张表里遍历,效率能一样?
4 楼 xuehanxin 2012-01-12  
测试数据量一个表是10万多条记录一个是30w记录
3 楼 wilddonkey 2012-01-06  
两种写法都用过,
第一种一般用exists不用in,没感觉性能差异很大啊
不知道你的测试数据量。。。
2 楼 xuehanxin 2011-12-13  
谢谢提醒,那个写博客的时候掉了
1 楼 houxinyou 2011-12-13  
两个语句好像是不一样的吧?

相关推荐

    SQL语句学习

    ### SQL语句学习:从入门到精通 #### SQL简介与简史 SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系型数据库的标准语言。自1974年由IBM的研究员Donald D. Chamberlin和Raymond F. ...

    六条比较有用的MySQL数据库操作的SQL语句小结

    以下是六个实用的SQL语句,对初学者尤其有帮助: 1. **计算年数** 当需要根据生日计算年龄时,可以使用以下SQL语句: ```sql SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW()) - TO_DAYS(@dateofbirth)), '%Y') + 0...

    T-SQL高级查询

    上面括号中的语句,就是子查询语句(内部查询)。在外面的是外部查询,其中外部查询可以包含以下语句: 1、 包含常规选择列表组件的常规select查询 2、 包含一个或多个表或视图名称的常规from语句 3、 可选的...

    sql高级进阶

    - 检测两个表中的数据及对应数据的条数是否相同:使用EXCEPT或INTERSECT语句。 - 聚集与内联接/外联接:结合使用聚集函数和各种连接。 - 从多个表中返回丢失的数据:利用OUTER APPLY进行表的自关联查询。 - 多表...

    2009达内SQL学习笔记

    多数DBMS不需要在单条SQL语句后加分号,但特定的DBMS可能必须在单条SQL语句后加分号。 SQL语句的最后一句要以 “;”号结束 二、写子句顺序 Select column,group_function From table [Where condition] ...

    sql全面自学通

    - **INSERT VALUES语句**:向表中插入一条或多条新记录。 - **INSERT SELECT语句**:从一个表中选择数据并插入到另一个表中。 - **更新语句**:修改表中已有的记录。 - **删除语句**:删除表中的记录。 #### 十二...

    mssql中得到当天数据的语句

    因此,这条SQL语句: ```sql select count(point_id) as today_sum from point where datediff(d, point_date, getdate()) = 0 ``` 会返回今天(`getdate()`)在`point`表中`point_id`的数量,也就是`today_sum`。...

    程序员的SQL金典6-8

    **2.2 通过SQL语句管理数据表** - **创建数据表** - 使用`CREATE TABLE`语句定义表结构。 - **定义非空约束** - 使用`NOT NULL`确保某列不为空。 - **定义默认值** - 使用`DEFAULT`设置某列的默认值。 - **定义...

    云HBaseSQL及分析PhoenixSpark.pdf

    在索引性能测试中,主表的写入性能会随着二级索引表数量的增加而线性降低,通常无索引表和有8个索引表的主表写入性能相差6-7倍。测试结果表明,使用全局索引(GLOBALINDEX)的写入性能优于使用局部索引(LOCALINDEX...

    Oracle日期函数

    **示例SQL语句**: ```sql SELECT SYSDATE FROM DUAL; ``` **返回结果**: ``` SYSDATE ---------- 21-6-05 ``` 这里显示的是一个格式化后的日期值,具体格式取决于会话设置。 #### 2. `LAST_DAY` — 获取指定...

    Mysql 相邻两行记录某列的差值方法

    在数据库管理中,有时我们需要对数据进行...总的来说,MySQL提供了丰富的SQL语句和聚合函数,可以满足各种数据处理和分析的需求。在实际应用中,根据业务场景灵活运用这些工具,能够有效地提升数据处理的效率和准确性。

    DB2手册pdf

    虽然编写复杂的SQL语句可以提高查询效率,但也需要权衡可读性和维护性。过度复杂的SQL可能难以理解和调试。 #### SQL SP及CSP的选择 选择使用SQL存储过程 (SQL SP) 还是C存储过程 (CSP),取决于性能需求和复杂性。...

    牛新庄:DB2使用经验

    - **SQL语句尽量写复杂SQL**:合理构建复杂的SQL语句可以减少查询次数,提高性能。 - **SQLSP及CSP的选择**:根据具体情况选择使用SQL存储过程还是C语言存储过程,考虑执行效率等因素。 - **查询的优化(HASH及RR_...

    DB2使用经验积累

    - **SQL语句尽量写复杂SQL**:在合理的情况下,将多个简单的SQL语句合并成一个复杂的SQL语句可以提高执行效率。 - **SQLSP及CSP的选择**:根据实际情况选择使用SQL存储过程还是C语言存储过程,考虑性能、可维护性等...

    DB2数据库用户手册

    - **类似datedif计算两个日期的相差天数**:可以使用`DATEDIFF`函数来计算两个日期之间的天数差异。 - **写UDF的例子**:用户定义函数(UDF)可以扩展DB2的功能,例如可以通过编写PL/SQL或Java代码来创建一个计算特定...

    oracle基础试题

    - **解答**: 解释两条SQL语句的含义和输出结果。 - 第一条语句:输出为NULL或错误提示,因为没有指定列名。 - 第二条语句:输出为NULL或错误提示,因为没有指定列名。 **9. 让SELECT语句的输出结果为。** - **...

    db2开发经验

    2. **SQL语句尽量写复杂SQL:** 尽量合并多个查询为一个复杂的SQL语句,可以减少I/O操作,提高性能。 3. **SQL SP及CSP的选择:** SQL存储过程和C存储过程各有优缺点,在选择时需要考虑性能和可维护性等因素。 4. **...

    DB2数据库使用经验积累

    在某些情况下,编写更复杂的SQL语句可以帮助减少所需的执行计划数量,从而提高性能。 ##### 5.3 SQLSP及CSP的选择 根据具体需求选择合适的存储过程类型。SQLSP(SQL存储过程)适用于简单的数据处理任务,而CSP...

Global site tag (gtag.js) - Google Analytics