私はすべて、同じレイアウトの2つの同様の非常に大きなテーブル(それぞれ1M行)を持っています。それらを結合し、共通の列でソートします: start 。また、「start」に条件を入れます。つまり、start>X です。問題は、ビューが開始のインデックスを気にせず、複雑さが大幅に上昇することです。単純なクエリには約 15 秒かかり、結果が最初に切り取られるため、LIMIT を挿入しても修正されません。
CREATE VIEW CDR AS
(SELECT start, duration, clid, FROM cdr_md ORDER BY start LIMIT 1000)
UNION ALL
(SELECT start, duration, clid, FROM cdr_1025 ORDER BY start LIMIT 1000)
ORDER BY start ;
へのクエリ:
SELECT * FROM CDR WHERE start>10
期待される結果が返されないため、LIMIT キーワードが前の結果を切り捨てます。
期待される結果は、次のようなクエリになります。
CREATE VIEW CDR AS
(SELECT start, duration, clid, FROM cdr_md WHERE start>X ORDER BY start LIMIT 1000)
UNION ALL
(SELECT start, duration, clid, FROM cdr_1025 WHERE start>X ORDER BY start LIMIT 1000)
ORDER BY start ;
この問題を回避する方法はありますか? ありがとうファブリツィオ