当我在以下查询中删除 ORDER BY 时,我的查询从 15 秒变为 0.05 秒:
简化版:
SELECT field1, fiedl2, field 3,
FUNC1(1, 2) AS score1,
FUNC2(1, 2) AS score2,
FUNC3(1, 2) AS score3,
FUNC4(1, 2) AS score4
FROM table
WHERE field1 = 1
ORDER BY (score1 * 1 + score2 * 2 + score3 * 2 + score4 * 4) DESC;
我有几个计算子分数的存储函数。除了我必须根据总分排序结果。在 ORDER BY 中,我使用* 2
给子分数添加一些权重来影响总分。
我使用 MySQL 5.6.13
有没有人知道我可以如何制作 ORDER BY,但又不能放慢速度?是否可以存储score#
字段并总结它们?
谢谢!