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

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 SQL查询优化最佳实践

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

    Mysql查询索引优化

    前段时间我给朋友们准备的关于Mysql数据库索引优化及查询优化的ppt,送给这里有需要的朋友。

    mysql优化配置大全

    同时,MySQL也是优化难度最大的一个部分,不但需要理解一些MySQL专业知识,同时还需要长时间的观察统计并且根据经验 进行判断,然后设置合理的参数。 下面我们了解一下MySQL优化的一些基础,MySQL的优化我分为两...

    Mysql根据时间查询日期的优化技巧

    主要介绍了Mysql根据时间查询日期的优化技巧,非常不错,具有参考借鉴价值,需要的朋友可以参考下

    高并发基础之-MySql性能优化.pdf

    掌握优化查询的方法 掌握优化数据库结构的方法 掌握优化 MySQL 服务器的方法 2. 什么是优化? 合理安排资源、调整系统参数使 MySQL 运行更快、更节省资源。 优化是多方面的,包括查询优化、更新优化、服务器优化...

    【荐】mysql服务性能优化—my.cnf_my.ini配置说明详解(16G内存)

    此配置是老男孩生产线上使用的配置,这配置已经优化的不错了,如果你的mysql没有什么特殊情况的话,可以直接使用该配置参数 对各参数添加了中文说明 ======= back_log = 600 #在MYSQL暂时停止响应新请求之前,短...

    mysql优化及基础面试题

    mysql优化及基础面试题。 什么是慢查询 慢查询日志,顾名思义,就是查询慢的日志,是指 mysql 记录所有执行超过 long_query_time 参数设定的时间阈值的 SQL 语句的日志。该日志能为 SQL 语句的优化带来很好的帮助...

    Mysql高级性能优化思维导图

    查询优化:编写高效的SQL查询语句,避免使用慢查询或复杂查询,优化查询语句的逻辑和结构。 配置调优:优化MySQL的配置参数,包括缓存大小、连接数、并发线程等,以最大程度地利用系统资源和提高性能。 表分区和分...

    MySQL性能优化详解.docx

    监控和分析慢查询:开启慢查询日志,使用mysqldumpslow命令分析慢查询,找出并优化执行时间较长的SQL语句。 调整MySQL配置:根据服务器的硬件资源和应用需求,调整MySQL的各项参数,如缓冲池大小、最大连接数等,以...

    MySQL服务器优化细解

    网上有很多的文章教怎么配置MySQL服务器,但考虑到服务器硬件配置的不同,具体应用的差别,那些文章的做法只能作为初步设置参考,我们需要根据自己的情况进行配置优化,好的做法是MySQL服务器稳定运行了一段时间后...

    mysql分页查询优化,大数据量优化

    传统的mysql分页查询 select * from table limit n , m MySQL 执行此类SQL时需要先分页(默认一页1000条数据)通过全表扫描到N行,然后再去取M行。对于此类操作,获取前面少数几行数据会很快,但是随着扫描的记录数越...

    通过联合索引优化MYSQL慢查询

    通过联合索引优化MYSQL慢查询 一、慢SQL分析 慢SQL如下 SELECT SUM(t.amount) as amount FROM (SELECT game_id,room_id,is_robot,amount,record_time FROM t_statements_logs WHERE game_id = 30 AND is_robot = 0 ...

    MySQL服务器性能优化.docx

    MySQL服务器性能优化全文共3页,当前为第1页。MySQL服务器性能优化全文共3页,当前为第1页。 MySQL服务器性能优化全文共3页,当前为第1页。 MySQL服务器性能优化全文共3页,当前为第1页。 MySQL服务器性能优化 MySQL...

    MySQL调优及mysql性能优化.doc

    不难发现,原来mysql调优其实就是从时间、空间这两个方面来进行优化 mysql怎么调优 第一:选择最合适的字段属性。 mysql在创建数据库的时候肯定是数据库中的表越小越好,这样才能提高查询的速度。但是现实往往...

    Mysql查询语句优化技巧

    索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存)等等。这里的记录的优化技巧更适用于开发人员,都是从网络上收集和自己整理的,主要是查询语句上面的优化,...

    MYSQL优化详情大全

    MySQL优化是指通过调整数据库的配置和优化查询语句等方式来提高MySQL数据库的性能和效率。 以下是一些常见的MySQL优化方法和技巧的描述: 优化数据库结构:设计良好的数据库结构可以提高查询效率。包括正确选择...

    浅谈MySQL大表优化方案

    时间类型转化为时间戳格式,用int类型储存,建索引增加查询效率 建议字段定义not null,null值很难查询优化且占用额外的索引空间 使用TINYINT类型代替枚举ENUM 存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBL

    Mysql慢查询优化方法及优化原则

    1、日期大小的比较,传到xml中的日期格式要符合’yyyy-MM-...4、保证优化SQL前后其查询结果是一致的 5、在查询的时候通过将EXPLAIN命令写在查询语句前,测试语句是否有走索引【具体用法百度】 6、禁止使用SELECT * FROM

Global site tag (gtag.js) - Google Analytics