我有很多完全相同的表格。 TableA,TableB,TableC,TableD等,我想從中創建視圖。 做select * from TableA
需要20ms,做select * from tableB
需要20ms,但做 (select * from TableA) union all (select * from TableB)
需要20分鐘。 這些表具有完全相同的列。 my.cnf中是否有需要更改的設置,或創建運行速度更快的視圖的方法?所有的桌子都有1.5米到10米左右的排。解釋任何使UNION ALL運行速度更快的方法?
PRIMARY TableA ALL 28808685
UNION TableB ALL 15316215
UNION RESULT <union1,2> ALL Using temporary
表結構的
結果: 10 VARCHAR(20)的,5倍無符號的INT。
'DESCRIBE'和'EXPLAIN',請。 – bishop
如果你的表A有150萬行,那麼只有20ms才能返回所有這些行。如果你從5M到40M行的任何地方返回,它將花費很多時間 - 可能還有其他一些你可以優化的東西,比如檢索數據的方法(使用遊標,將所有內容返回等等)。 )。 – nos