`
san_yun
  • 浏览: 2653839 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

mysql 时间查询优化

 
阅读更多
mysql按照时间查询不要使用subdate函数,因为每次subdate的结果值都不同,导致无法query_cache:

这条SQL:
select id,add_datetime,favorite_count  from message_message
where add_datetime >  SUBDATE(now(),INTERVAL 25 HOUR)  
and category IN (1, 9) order by favorite_count desc limit 24;

执行三次:

24 rows in set (1.01 sec)
24 rows in set (0.98 sec)
24 rows in set (0.95 sec)

修改成:
SELECT id,add_datetime,favorite_count  from message_message 
where add_datetime > '2012-08-29 13:44:44'  and category IN (1, 9)
order by favorite_count desc limit 24;


执行三次:
24 rows in set (0.98 sec)
24 rows in set (0.00 sec)
24 rows in set (0.00 sec)



不建索引:
select id,add_datetime,favorite_count  from message_message   where add_datetime >  '2012-08-30 12:13:41'  and category IN (1, 9)  order by favorite_count DESC limit 24 ;

24 rows in set (50.44 sec)
24 rows in set (0.00 sec)
24 rows in set (0.00 sec)

explain select id,add_datetime,favorite_count  from message_message   where add_datetime >  '2012-08-30 12:13:41'  and category IN (1, 9)  order by favorite_count DESC limit 24 \G;
------------------------------------------------------
           id: 1
  select_type: SIMPLE
        table: message_message
         type: index
possible_keys: idx_add_t,idx_add_rep,idx_cat_add_fav
          key: idx_favorite_count
      key_len: 4
          ref: NULL
         rows: 48505
        Extra: Using where
1 row in set (0.00 sec)
explain 信息:
           id: 1
  select_type: SIMPLE
        table: message_message
         type: range
          key: idx_cat_add_fav
      key_len: 10
          ref: NULL
         rows: 34899
        Extra: Using where; Using index; Using filesort

idx_cat_add_fav(`category`,`add_datetime`,`favorite_count`)





select id,add_datetime,favorite_count  from message_message   where
add_datetime >  '2012-08-29 13:43:44'     and category IN (1, 9)  order by favorite_count limit 1,10;

这条sql不知道为什么非常慢

执行计划:
Extra Using where; Using index; Using filesort
key:  idx_cat_add_fav
type: range

索引:
idx_cat_add_fav(`category`,`add_datetime`,`favorite_count`)

select count(*)  from message_message   where add_datetime >  '2012-08-29 13:43:44'     and category IN (1, 9)

count: 17400
分享到:
评论

相关推荐

    MySQL数据库查询优化

    第3课 查询优化技术理论与MySQL实践(一)------子查询的优化(一) 第4课 查询优化技术理论与MySQL实践(二)------子查询的优化(二) 从理论看,子查询包括的内容和范围,建立清晰的概念 从实践看,MySQL的子查询...

    MySQL InnoDB 查询优化实现分析

    正确和及时的统计信息对于优化查询至关重要。InnoDB 通过自动收集和更新统计信息来确保查询优化器能够做出最合理的决策。 #### 六、查询优化总结 通过以上分析可以看出,MySQL + InnoDB 存储引擎在查询优化方面...

    2.mysql查询性能优化1

    MySQL 查询优化可以从多方面入手,包括优化查询语句、优化索引、优化数据库结构等。 6.2 查询优化技术 MySQL 查询优化技术有很多,包括使用索引、优化查询语句、使用连接优化、使用缓存优化等。 6.2.1 使用索引 ...

    MySQL数据库查询优化方案.docx

    MySQL 数据库查询优化方案 MySQL 数据库查询优化是指对数据库中的查询语句进行优化,以提高查询效率和数据库性能。以下是 MySQL 数据库查询优化的一些重要知识点: 一、索引相关 索引是 MySQL 数据库查询优化的...

    MySQL SQL查询优化最佳实践

    详细介绍慢查询日志及示例演示,MySQL查询优化器介绍及特定SQL的查询优化等 1.获取有性能问题的SQL的三种方法 2.慢查询日志概述 3.慢查询日志实例 4.实时获取性能问题SQL 5.SQL的解析预处理及生成的执行计划 6.如何...

    基于MySQL数据库的查询性能优化研究.pdf

    3. 优化查询语句:优化查询语句,例如使用 EXISTS 语句代替 IN 语句、避免使用HAVING 子句等。 4. 使用缓存机制:使用缓存机制可以大大提高查询速度,例如使用 MySQL 的查询缓存机制等。 提高 MySQL 数据库的查询...

    mysql数据库sql优化

    在MySQL数据库管理中,SQL查询的性能直接影响到系统的响应时间和资源消耗。通过合理的SQL优化,可以显著提高数据处理速度,降低服务器负载,提升用户体验。 ##### 1.1 优化实战 #### 策略1:尽量全值匹配 全值...

    MySQL查询优化浅析

    ### MySQL查询优化浅析 #### 一、查询优化概述 查询优化是数据库管理系统(DBMS)中的一个重要组成部分,其主要目标是在接收到一个SQL查询后,寻找最高效的执行计划,以尽可能快的速度返回查询结果。这一过程涉及到...

    MySQL索引原理及慢查询优化1

    MySQL索引原理及慢查询优化是数据库管理中的重要主题,尤其是在高并发、大数据量的互联网环境中,优化查询性能对于系统的整体效能至关重要。MySQL作为广泛使用的开源关系型数据库,其索引机制和查询优化技巧是开发者...

    MySQL数据库查询优化技术

    在MySQL中,优化查询能够显著提升数据检索的速度,降低服务器负载,从而提高整体应用的效率。以下是一些关于MySQL查询优化的核心知识点: 1. **索引优化**:索引是提升查询速度的关键。合理创建主键、唯一索引、...

    mysql5.6性能优化

    在MySQL中,查询优化是一项关键的技术。通过合理的查询优化,可以显著提高查询效率,降低数据库的负载。其中,`EXPLAIN`语句是一种常用的工具,用于分析SQL查询的执行计划。 ##### 使用`EXPLAIN` - **语法示例**:...

    MySQL查询优化器的工作原理

    3. 进行基于规则的优化,这是一系列预定义的转换操作,用来优化查询语句。 4. 开展基于成本的优化,也称为统计式优化,这是最复杂且最有决定性的一步。优化器会考虑多种可能的执行计划,并为每个计划计算一个成本...

    mysql性能优化.pptx

    MySQL性能优化是一个涵盖广泛的主题,涉及多个层面,包括SQL语句优化、索引优化、数据库表结构优化、系统级配置优化以及服务器硬件优化。以下是对这些方面进行详细说明: 1. **SQL语句优化** - **慢查询日志**:...

    MySQL优化篇:慢查询日志.pdf

    总结来说,MySQL的慢查询日志记录了那些执行时间超过预设阈值的SQL语句,通过适当配置和分析这些日志,可以有效发现并优化数据库中的性能瓶颈。在使用慢查询日志时,需注意它可能会对数据库性能造成一定影响,因此...

    mysql性能的优化

    MySQL性能优化是一个综合性的过程,涉及到SQL查询优化、数据库结构优化以及MySQL服务器配置等多个方面。通过上述方法和技术的应用,可以显著提高MySQL的运行效率,降低资源消耗,最终实现更好的用户体验和服务质量。

    mysql查询优化之索引优化

    - **避免全表扫描**:通过优化查询语句,减少不必要的全表扫描,例如,避免在WHERE子句中使用NOT IN、!=、等操作符。 - **监控和分析**:定期检查EXPLAIN计划,分析索引的使用情况,使用MySQL的性能分析工具如pt-...

    基于MySQL的数据库查询性能优化.pdf

    "基于MySQL的数据库查询性能优化" 在当前的Web应用开发中,数据库的查询操作已经成为整个应用的性能瓶颈, especialmente 对于使用 MySQL 的 Web 应用。因此,数据库查询性能的优化已经成为一个非常重要的课题。...

    MySQL查询性能优化

    有了这些概念,我们就来看看如何优化查询。 二、慢查询基础:优化数据访问 通常查询慢的原因,我们可以简单地分为以下两类: 1. 确认程序是否需要检索大量超过需要的数据,这通常意味着访问了太多的行,也可能是...

Global site tag (gtag.js) - Google Analytics