Drupal TB mega菜单太慢了


Drupal TB mega menu is so slow

我正在使用Drupal开发一个网站,并使用TB mega菜单作为我的主菜单,当我使用Devel检查执行时间时,我发现TB mega菜单在以下查询中花费了大约23978.991 ms:

tb_megamenu_get_tree

SELECT m.load_functions, m.to_arg_functions, m.access_callback, m.access_arguments, m.page_callback, m.page_arguments, m.delivery_callback, m.title, m.title_callback, m.title_arguments, m.type, m.description, ml.* FROM menu_links ml LEFT JOIN menu_router m ON m.path = ml.router_path WHERE ml.menu_name = :menu ORDER BY p1 ASC, p2 ASC, p3 ASC, p4 ASC, p5 ASC, p6 ASC, p7 ASC, p8 ASC, p9 ASC

我认为这要么是JOIN条件上缺少索引,要么是ORDER BY子句中缺少索引。添加适当的索引几乎肯定会有数量级的帮助。

但我也赞同Goon3r对超级鱼的推荐。我们使用它,它工作得很好。