WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Improve smart content filter query #227

@alexander-schranz

Description

@alexander-schranz

The current smart content filter queries can be very slow because of usage of distinct:

With Distinct and Join 1.37s:

SELECT DISTINCT k0_.id AS id_0,

k1_.workflowPublished as workflow_published_1

FROM kgr_recipes k0_

INNER JOIN kgr_recipe_dimension_contents k1_ ON k0_.id = k1_.recipeId

INNER JOIN kgr_recipe_dimension_content_excerpt_categories k3_ ON k3_.recipe_dimension_content_id = k1_.id 

WHERE k1_.stage = 'live' AND k1_.locale = 'de'
 AND k3_.category_id IN (165, 144)

-- AND (
--    SELECT k3_.category_id FROM kgr_recipe_dimension_content_excerpt_categories k3_
--    WHERE k3_.recipe_dimension_content_id = k1_.id AND k3_.category_id IN (165, 144)
--    LIMIT 1
-- ) != 0

ORDER BY k1_.workflowPublished DESC LIMIT 33

Without Join and without distinct 83ms:

SELECT k0_.id AS id_0,

k1_.workflowPublished as workflow_published_1

FROM kgr_recipes k0_

INNER JOIN kgr_recipe_dimension_contents k1_ ON k0_.id = k1_.recipeId


-- INNER JOIN kgr_recipe_dimension_content_excerpt_categories k3_ ON k3_.recipe_dimension_content_id = k1_.id -- AND k3_.category_id IN (165, 144)

WHERE k1_.stage = 'live' AND k1_.locale = 'de'
-- AND k3_.category_id IN (165, 144)

AND (
  SELECT k3_.category_id FROM kgr_recipe_dimension_content_excerpt_categories k3_
  WHERE k3_.recipe_dimension_content_id = k1_.id AND k3_.category_id IN (165, 144)
  LIMIT 1
) != 0

ORDER BY k1_.workflowPublished DESC LIMIT 33

This impacts:

Metadata

Metadata

Assignees

No one assigned

    Labels

    PerformanceProblems with performance

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions