CREATE VIEW push_log AS
SELECT title, id, classid, titlepic FROM push_log_0 BETWEEN (UNIX_TIMESTAMP(NOW()) - ((3600 * 24) * 30)) AND UNIX_TIMESTAMP(NOW()))
UNION
SELECT title, id, classid, titlepic FROM push_log_1 BETWEEN (UNIX_TIMESTAMP(NOW()) - ((3600 * 24) * 30)) AND UNIX_TIMESTAMP(NOW()))
UNION
SELECT title, id, classid, titlepic FROM push_log_2 BETWEEN (UNIX_TIMESTAMP(NOW()) - ((3600 * 24) * 30)) AND UNIX_TIMESTAMP(NOW()))
UNION
SELECT title, id, classid, titlepic FROM push_log_3 BETWEEN (UNIX_TIMESTAMP(NOW()) - ((3600 * 24) * 30)) AND UNIX_TIMESTAMP(NOW()))
UNION ..........
像這樣UNION連接后建立的mysql 視圖 結果導致查詢很慢 。, 請大家給個優化方案。 謝謝了。
uj5u.com熱心網友回復:
使用union all連接,union連接,連接之后還會執行去重操作的uj5u.com熱心網友回復:
union 會用到排序,進行去重看一下查詢計劃,分析一下是否可以走索引
uj5u.com熱心網友回復:
1樓的大神給的回復還算可以一點點, 優化了2秒 。 但是現在查詢速度到了4-5秒鐘, 速度還是不行,大家還有沒有一些其他的方案。uj5u.com熱心網友回復:
貼出 explain select ... 以供分析。uj5u.com熱心網友回復:
我直接換or ,in ,and做條件了,union慢的一批uj5u.com熱心網友回復:
《如何協助MySQL實作視窗函式》這篇文章介紹得方法,可以實作union查詢,并且性能問題解決的不錯uj5u.com熱心網友回復:
你把where條件,改成定值,先不要用函式,試一下,是否有變快?轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/75252.html
標籤:MySQL
上一篇:mysql 寫入資料報錯 Table has no partition for value 737426
下一篇:大資料作業
