优化这个SQL查询(慢查询)

时间:2013-08-20 16:13:48

标签: mysql mysql-slow-query-log

我有这个问题:

SELECT
            DATE(
                wp_posts.post_date
            ) post_date,
            wp_posts.id,
            wp_posts.post_title,
            wp_posts.post_status,
            wp_posts.guid,
            COUNT(
                wp_plugin_most_popular_posts.post_id
            ) as count,
            (SELECT
                COUNT(
                    wp_plugin_most_popular_posts.post_id
                )
            FROM
                wp_plugin_most_popular_posts
            WHERE wp_plugin_most_popular_posts.post_id = wp_posts.ID 

            GROUP BY
                post_id) AS view_count
        FROM
            wp_posts

        INNER JOIN wp_term_relationships rel ON wp_posts.ID = rel.object_id
        INNER JOIN wp_term_taxonomy ttax ON rel.term_taxonomy_id = ttax.term_taxonomy_id
        INNER JOIN wp_terms terms ON ttax.term_id = terms.term_id

        JOIN wp_plugin_most_popular_posts ON wp_plugin_most_popular_posts.post_id = wp_posts.id
        WHERE
            wp_posts.post_status = "publish"

            AND taxonomy = "category"

        GROUP BY
            wp_plugin_most_popular_posts.post_id
        ORDER BY
            view_count DESC,
            post_date DESC
        LIMIT 10;

并解释退货

id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
1       PRIMARY ttax    ref     PRIMARY,term_id_taxonomy,taxonomy       taxonomy        98    const    28      Using where; Using temporary; Using filesort
1       PRIMARY terms   eq_ref  PRIMARY PRIMARY 8       peiraxtiri_db.ttax.term_id      1     Using index
1       PRIMARY rel     ref     PRIMARY,term_taxonomy_id        term_taxonomy_id        8     peiraxtiri_db.ttax.term_taxonomy_id      1       Using index
1       PRIMARY wp_posts        eq_ref  PRIMARY PRIMARY 8       peiraxtiri_db.rel.object_id   Using where
1       PRIMARY wp_plugin_most_popular_posts    ref     idx2    idx2    4       peiraxtiri_db.wp_posts.ID      96      Using where; Using index
2       DEPENDENT SUBQUERY      wp_plugin_most_popular_posts    ref     idx2    idx2    4     func     96      Using where; Using index

你能帮我优化一下吗?此查询现在大约需要7-9秒:( 我不是那么专业的mysql优化,我不知道该怎么做......

0 个答案:

没有答案