小编Per*_*äng的帖子

嵌套集索引和性能

我在理解在嵌套集模型上使用什么索引时遇到了一些麻烦.查询是:

SELECT `node`.`id`,(COUNT(parent.id) - 1) AS `depth`,`name` FROM `categories` AS `parent` 
INNER JOIN `categories` AS `node` ON (`node`.`lft` BETWEEN parent.lft AND parent.rgt)
INNER JOIN `filebank_categories` ON (`node`.`id` = `filebank_categories`.`category_id` AND `filebank_categories`.`filebank_id` = 136)
INNER JOIN `categories_names` ON (`categories_names`.`category_id` = `node`.`id` AND `categories_names`.`language_id` = 1) 
WHERE `node`.`system_id` = parent.system_id 
GROUP BY node.id 
ORDER BY `node`.`lft` ASC
Run Code Online (Sandbox Code Playgroud)

这个查询需要大约350毫秒,大约有5000行categories.EXPLAIN给出了这个:

1   SIMPLE  filebank_categories     ref     fk_filebank_categories_categories1,filebank_id          filebank_id 5   const                               474 Using where; Using temporary; Using filesort
1   SIMPLE  node                    eq_ref  PRIMARY,lft,category,cat,lft,rgt,system,id,lft,system   PRIMARY     4 …

mysql query-optimization nested-sets

2
推荐指数
1
解决办法
1966
查看次数

标签 统计

mysql ×1

nested-sets ×1

query-optimization ×1