使用EXPLAIN输出优化慢速MySQL查询

阿西·扎克(Assi Zak)

以下查询运行了6.6秒,并产生了26行。

EXPLAIN结果是使用键扫描两个23和48行的两个'ref'类型的SIMPLE查询。

表f有1000行,表m有42000行。

seltype表类型键key keylen ref行过滤多余的

SIMPLE f ref PRIMARY,forum_site_id 4 const 23 100.00使用where; 使用临时的;使用文件
                   排序forum_site_id,
                   forums_flag_list_new_posts 

SIMPLE m ref forum_msg_forum_id,forums_msg_forum_id 5 locali_db.f.id 48 100.00在其中使用
                   forum_msg_status,
                   forum_msg_date   

这是查询(非常简单):

SELECT

    m.id AS msg_id,
    m.public_id AS msg_public_id,
       more fileds of this table ...

    f.id AS forum_id,
    f.public_id AS forum_public_id,
       more fileds of this table ...

FROM

    forum_msgs m
    INNER JOIN forums f ON
        m.forum_id = f.id

WHERE

    f.site_id = 19
    AND f.flag_list_new_posts = 1

    AND m.msg_date >= 1434803744
    AND m.status <> 11

ORDER BY
    m.msg_date DESC

LIMIT 
    100

WHERE和ORDER BY子句中的所有字段均为INTEGER类型,并定义为INDEX。字段forum_id定义为FOREIGN KEY。

我很乐意找出可能导致异常表现的原因:)

扎海

该数据库在QDS很高(峰值高达200)的RDS上运行。平均而言,这会导致50 IOP / s的磁盘速度。将实例存储类型从磁性固态硬盘更改为通用固态硬盘解决了该问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

优化慢速MySQL选择查询

来自分类Dev

优化慢速索引的MySql查询

来自分类Dev

优化慢速索引的MySql查询

来自分类Dev

MySQL优化慢速查询与解释

来自分类Dev

优化慢速LINQ查询

来自分类Dev

如何以慢速排序依据优化MYSQL查询

来自分类Dev

使用EF进行总和的慢速mysql查询

来自分类Dev

使用“ NOT IN”优化MySQL查询

来自分类Dev

改善慢速MySQL查询

来自分类Dev

MySQL慢速SELECT查询

来自分类Dev

LINQ查询优化用于慢速分组

来自分类Dev

使用 subselect 优化 MySQL 查询

来自分类Dev

使用相关子查询优化MySQL查询

来自分类Dev

在函数扫描和嵌套循环上使用慢速和错误估计优化 PostgreSQL 查询

来自分类Dev

我的查询未使用索引,如何使用解释计划并使用MySQL修复此慢速查询

来自分类Dev

MySQL优化使用WHERE子句的子查询?

来自分类Dev

优化使用IN和MAX(date)的MySQL查询

来自分类Dev

使用左联接优化MySql查询

来自分类Dev

使用索引优化MySQL查询性能

来自分类Dev

MySql GROUP BY 使用文件排序 - 查询优化

来自分类Dev

优化MySQL查询,该查询使用子查询;MariaDB更快

来自分类Dev

使用几乎相同的子查询优化MySQL查询

来自分类Dev

如何使用多个选择查询优化UNION mysql查询?

来自分类Dev

Oracle SQL查询优化输出

来自分类Dev

laravel MySQL查询优化

来自分类Dev

MySQL优化庞大的查询

来自分类Dev

慢IN()MySQL查询优化

来自分类Dev

MySQL MAX查询优化

来自分类Dev

mysql查询优化任务