2016-09-24 47 views
-1

我有這個疑問是否可以優化查詢獲取表

SELECT id, alias, parent FROM `content` 

所有行是否有辦法來優化這個查詢,從而「型」比「全部」

不同

ID - 初級,獨特

ID - 索引

父 - 索引

別名 - 指數

....

請注意,該查詢幾乎不會返回超過1500行。

謝謝

+1

據我瞭解的問題 - 沒有。但是在使用這個查詢時優化是可能的:查詢數據的下一個生命是什麼? –

+0

您可以通過刪除一些行來優化它:p – Drew

+0

Jacek - 不確定你的意思 – orbitory

回答

0

您的查詢獲取所有的行,所以顧名思義它會報告「ALL」作爲EXPLAIN報告的查詢類型。唯一的另一種可能性是「索引」查詢類型,即索引掃描,用於訪問索引中的每個條目。但這幾乎與桌面掃描相同。

有一種說法是,最快的SQL查詢是根本不運行的,因爲您以其他方式獲取數據。

例如,如果數據在某種類型的緩存中。如果您的數據不超過1500行,並且不會頻繁更改,那麼它可能是放入內存的理想選擇。然後,只有在緩存的數據丟失時才運行SQL查詢。

有一對夫婦的共同選擇:

  • MySQL query cache是保持在MySQL服務器的內存緩存,並清除時自動在表中的數據發生變化。

  • Memcached是一個受歡迎的內存中鍵值存儲器,這些存儲器也是使用MySQL的應用程序頻繁使用的。速度非常快。另一種選擇是Redis,它與此類似,但也受磁盤存儲的支持。

0

OFFlog_queries_not_using_indexes;它像你得到的紅鯡魚一樣混亂了慢日誌。

0.00XX秒 - 夠好不用擔心。

ALL實際上最適合從表格的「所有」行中獲取多個列。