次のクエリがあります
select
`cs`.sku ,
group_concat(
IF(
(
(
SELECT
count(id_catalog_category)
from
`catalog_category`
where
lft <= `ccg`.lft
and rgt >= `ccg`.rgt
)=2
),
`ccg`.name_en,
NULL
)
) as level_1_categories
from
catalog_simple `cs`
left join `catalog_config` `cc`
on `cs`.`fk_catalog_config` = `cc`.`id_catalog_config`
left join `catalog_config_has_catalog_category` `cchcc`
on `cc`.`id_catalog_config` = `cchcc`.`fk_catalog_config`
left join `catalog_category` `ccg`
on `cchcc`.`fk_catalog_category` = `ccg`.`id_catalog_category`
group by `cc`.sku
拡張を説明すると、次の結果が得られます。
"id" "select_type" "table" "type" "possible_keys" "key" "key_len" "ref" "rows" "filtered" "Extra"
"1" "PRIMARY" "cs" "ALL" NULL NULL NULL NULL "27384" "100.00" "Using temporary; Using filesort"
"1" "PRIMARY" "cc" "eq_ref" "PRIMARY" "PRIMARY" "4" "pkfas.cs.fk_catalog_config" "1" "100.00" ""
"1" "PRIMARY" "cchcc" "ref" "uk_id_catalog_config_has_catalog_category,fk_catalog_config" "uk_id_catalog_config_has_catalog_category" "4" "pkfas.cc.id_catalog_config" "2" "100.00" "Using index"
"1" "PRIMARY" "ccg" "eq_ref" "PRIMARY" "PRIMARY" "4" "pkfas.cchcc.fk_catalog_category" "1" "100.00" ""
"2" "DEPENDENT SUBQUERY" "catalog_category" "ALL" "lft,rgt" NULL NULL NULL "1739" "100.00" "Using where"
このクエリの実行には約 100 秒かかります
Sql Slowは次の結果を持っています
Query_time: 95.189445 Lock_time: 0.000000 Rows_sent: 8523 Rows_examined: 242668622
速くする方法を教えてください。前もって感謝します