簡體   English   中英

如何減少在同一張桌子的“全部聯盟”中打開myisam表的時間?

[英]How can I decrease time opening myisam table in an “union all” of the same table?

我有一個帶有250萬行的myisam表,我使用全部並集來獲取結果,如下所示:

(SELECT t.id FROM t WHERE type=1 LIMIT 10)
UNION ALL
(SELECT t.id FROM t WHERE type=2 LIMIT 10)
...
UNION ALL
(SELECT t.id FROM t WHERE type=25 LIMIT 10)

打開桌子的時間t約為6ms。

只需一個請求:

SELECT t.id FROM t WHERE type=1 LIMIT 10

時間大約是1毫秒。

我不明白的是,為什么mysql將更多的時間花在合並所有同一個表上。 它應該認識到那是同一張桌子,因此只需在第一個聯合處打開即可。

有人能幫助我減少在“所有會員”中打開表的時間嗎?

6ms非常快。 您獲取的數據量是原來的25倍,而提取的時間卻只有原來的6倍。

我將不再擔心它,並找到應用程序中真正的瓶頸在哪里。 如果每個查詢6毫秒是個問題,您可能希望嘗試減少每秒執行的查詢數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM