oracle的外连接where内表过滤条件是函数,包括自定义函数,没有其他额外非函数的过滤条件,则不能转为inner join,只能走外连接,然后外层FILTER过滤where条件,一般来说,效率比inner join低,增加 内表条件 is not null 则可以转为inner join,数学运算可以转为inner join【阅读全文】
组合索引要符合leftmost prefix规则,前导列是范围的,后续列条件不能index access,只能index filter... 但是貌似有例外: MySQL的like后通配,between,>=,=1 and b>3,“如果a是整数” 然后索引访问实际上是拆成两份:a=1 and b>3 和a>1 and b>3,前者能真正用到两个列索引访问,后者只能用到a>1 那么,如果存在a>1的数据很少,a=1的数据多,但是a=1 and b>3的数据少, 那么where a>=1 and b>3就比a>0 and b>3的效率高,因为写成 a>0 and b>3则只能用到a>0,而a>0是等价于a>=1的。。。但是实际上访问效率不一样,【阅读全文】