[英]MySQL query takes 2 minutes
我有個問題。 我正在運行 MySQL PhpMyAdmin 服務器,我有 3 個表:
然后我使用以下源查詢創建了一些:
SELECT
a.*
FROM
(
SELECT
*,
'CandlestickData' AS SOURCE
FROM
CandlestickData
UNION
SELECT
*,
'CandlestickDataHist1' AS SOURCE
FROM
CandlestickDataHist1
UNION
SELECT
*,
'CandlestickDataHist2' AS SOURCE
FROM
CandlestickDataHist2
) AS a
ORDER BY
a.MainKey
DESC
這讓我看到了 170 萬條記錄。 當我對視圖執行以下簡單查詢時:
SELECT * FROM my_created_view;
執行查詢大約需要 2 分鍾。 有沒有辦法讓它更快?
您可以使用UNION ALL
而不是UNION
加快速度:
SELECT cd.*
FROM ((SELECT cd.*, 'CandlestickData' AS SOURCE
FROM CandlestickData cd
) UNION ALL
(SELECT cd.*, 'CandlestickDataHist1' AS SOURCE
FROM CandlestickDataHist1 cd
) UNION ALL
(SELECT cd.*, 'CandlestickDataHist2' AS SOURCE
FROM CandlestickDataHist2 cd
)
) cd
ORDER BY cd.MainKey DESC;
這仍然需要對所有數據進行排序。 但是,它將消除刪除重復項的開銷。 我可能會冒險說它會快 50%。
如果您真的想加快查詢速度,則需要將所有數據存儲在一個表中。 然后您可以order by
創建索引。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.