我有很多簡單的查詢到在MySQL Workbench中運行:我需要加入許多查詢結果在一個結果
SELECT deviceID
, from_unixtime(timestamp)
FROM EventData
where accountID = '001'
and deviceID = 'FFF'
order
by timestamp desc
limit 1;
我這樣做是爲了得到一個非常巨大的積極的每deviceID
的最大timestamp
值這就是爲什麼我做很多查詢以獲得更快的結果。
我試過「deviceID IN(...)
」,但它需要很長時間,我不想掛斷服務器。
您可以使用'UNION ALL'來獲得所有的結果(或者如果你想要獨特的結果,只需'UNION')。然而,看看凱斯賈德的回答 - 你應該能夠將結果分組。多個查詢通常比單個查詢慢。在這種情況下,如果這兩個聯合查詢的運行速度比Caius的分組查詢快,我會感到非常驚訝。如果你發現查詢很慢,你可以使用MySQL的'explain'功能來找出原因(通常是因爲沒有使用索引)。 – RToyo
我只寫了兩行,但我有大約100多。請閱讀我的回答蔡斯 –
一個'union all'應該爲你做。另外 - 我知道我說的很明顯 - 當你達到不能再執行基本查詢的程度時(假設你正在正確使用你的索引),那麼可能是時候開始研究新的硬件,或者轉向雲數據庫。 – RToyo