0

ビューを使用してアルゴリズム クエリを最適化しようとしています。次のようなビューを作成しました。

簡易版:

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

誰かが素晴らしい手がかり、提案、または答えを持っているなら!

ありがとう!

4

0 に答える 0