gpt4 book ai didi

带有空 WHERE 的 MySQL 查询 - 索引优化

转载 作者:行者123 更新时间:2023-11-29 13:48:40 25 4
gpt4 key购买 nike

对于应用程序的索引页,我需要从 MySQL-DB 的表中提取所有条目。可以设置过滤器,但最初的 where 子句是 WHERE 1=1 。虽然这会返回预期结果 EXPLAIN表明没有使用索引,因此查询速度相当慢。

解决这个问题的最佳方法是什么?

<小时/>

编辑:

这是查询

SELECT 
`Module`.`id`,
`Module`.`name`,
`Module`.`module_class_id`,
`Module`.`editor`,
`ModuleClass`.`name`,
`Editor`.`name`,
`ModuleClass`.`id`,
`Editor`.`id`,
`Mc`.`id`
FROM `Module`
LEFT JOIN `ModuleClass` ON (`Module`.`module_class_id` = `ModuleClass`.`id`)
LEFT JOIN `Editor` ON (`Module`.`editor` = `Editor`.`id`)
LEFT JOIN `Mc` ON (`Module`.`id` = `Mc`.`module_id`)
WHERE 1 = 1
GROUP BY `Module`.`id`
ORDER BY
`Module`.`id` DESC,
`ModuleClass`.`name` ASC,
`Editor`.`name` ASC
LIMIT 50

这是解释的结果: screenshot of explain query

是的:我确实明白数据库在这里使用索引没有太大意义,但由于这对我来说似乎是一个相当常见的情况,我希望有一个最佳实践来面对这个问题

最佳答案

在 order by 子句中使用索引。因此,如果 ID 是您的 Primary_index,则写入 WHERE 1=1 order by ID

关于带有空 WHERE 的 MySQL 查询 - 索引优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17041463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com