2017-09-22 61 views
0

如果我將set optimizer_switch='block_nested_loop=off'設置爲建議here,我是否可以100%確定選項onoff的結果相同?MySQL嵌套循環優化器開關是否會影響查詢結果?

我想將此選項更改爲off,因爲它將查詢性能從56s提高到1s。

這個優化器開關有什麼優點和缺點,它是安全的嗎?

+3

如果您無法發佈公司代碼,請舉例說明您自己的代碼以證明問題。 – Cfreak

+0

我不認爲這是必要的,因爲它不是問題的關鍵點。 – Daredzik

+0

您可以刪除不相關問題的一部分。只是總結前兩段的內容,如'有一些查詢很慢,但如果我設置...'等。 –

回答

2

是的,它是安全的。 optimizer_switch告訴MySql如何搜索查詢的答案。無論如何設置optimizer_switch,它將爲您的查詢生成相同的結果(除非MySql中存在錯誤)。

使用set optimizer_switch='block_nested_loop=off'的唯一缺點是其他查詢可能會變慢,因此您可能需要在執行查詢後將其設置回on

+0

謝謝,如果沒有其他人answear我會接受這一點。但我不知道爲什麼我的問題得到這麼多的缺點... – Daredzik

+0

@Daredzik我認爲這是因爲前兩段是關於我們看不到的代碼,這甚至沒有相關性。如果您將問題更改爲「我保證如果使用此optimizer_switch會得到相同的結果?」,那麼問題會更加清楚。 –

+0

我希望現在好了;) – Daredzik