___符号怎么打(____的那一刻作文提纲)

lxf2023-05-07 19:28:01

bitsCN.com MySQL提示:Straight_JOIN

来自生产环境的朋友可能会遇到:

一段时间后,运行良好的查询语句可能会突然变得非常糟糕。

一个可能的原因是数据分布发生了变化。

导致MySQL优化器对驱动表的选择发生了变化,然后索引失效。

所以,闲着喝咖啡的时候,要多收集两张表的统计信息。

这时,直_JOIN出现了。

MySQL只支持嵌套循环连接。关于这个嵌套连接的详细用法,请参考我以前的博客:点击打开链接。

http://www.bitsCN.com/database/201301/186885.html

与Oracle相比,Straight_JOIN相当于Oracle中的USE_NL,所以原理和应用大概是一样的。

但是MySQL优化器在驱动表的选择上可能没有Oracle聪明,MySQL采用了一种简单粗暴的方法:

哪个表的结果集小,就是驱动表。

选择Straight_JOIN有两个原因。

① MySQL优化器不强大,驱动表选择错误。

②嵌套循环连接的适用场景:

= = >一般在连接表中有索引且索引选择性好(即选择性接近1)的情况下使用。

==>也就是驱动表的记录集比较小(