如果我按照此处的建议设置set optimizer_switch='block_nested_loop=off'
,我是否可以为选项on
和off
获得 100% 确定相同的结果?
我想将此选项更改为off
,因为它将查询性能从 56 秒提高到 1 秒。
这个优化器开关的优缺点是什么,安全吗?
是的,它是安全的。optimizer_switch
告诉MySql如何搜索查询的答案。无论如何设置optimizer_switch
,它都会为您的查询生成相同的结果(除非 MySql 中存在错误)。
使用set optimizer_switch='block_nested_loop=off'
的唯一缺点是其他查询可能会变慢,因此您可能希望在执行查询后将其设置回on
。