ビューを使用してアルゴリズム クエリを最適化しようとしています。次のようなビューを作成しました。
簡易版:
CREATE ALGORITHM = MERGE VIEW view_name AS (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
); # only 0.003 seconds - approximate 2000 records
しかし、次のような SELECT クエリを実行しようとすると:
SELECT * FROM view_name
ORDER BY (score1 * 1 + score2 * 2 + score3 * 2 + score4 * 4) DESC
LIMIT 0,20; # 9 to 11 seconds
クエリが結果を取得するのに約 10 秒かかります。
私はすでに他のいくつかの解決策を試しましたが、何も成功しませんでした。参照:
MySQL query slow due to ORDER BY with Stored Functions
誰かが素晴らしい手がかり、提案、または答えを持っているなら!
ありがとう!