2017-09-22 60 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