news 2026/8/7 21:32:36

like关联改写

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
like关联改写

1、 等价转换
instr:字符串查找函数

INSTR(string,substring [,start_position [,occurrence [,return_option]]])string:源字符串substring:要查找的子串start_position:可选,开始搜索的位置(默认1,负数表示从末尾开始)occurrence:可选,指定查找第几次出现(默认1)return_option:可选,0=返回子串起始位置,1=返回子串结束位置

substr: 字符串截取函数

SUBSTR(string,start_position [,length])string:源字符串start_position:开始位置(正数从开头,负数从末尾)length:可选,要截取的长度(默认到字符串结尾)

LIKE:模糊匹配
其三者之间的转换

2、 问题语句

这里问题在于驱动表为t2,index join次数100万次,前面说过与substr和instr可以等价转换,这里想要转换驱动表,那么就需要用substr。
3、 改写

这里与预期的一样驱动表变为t1表,index join次数降下来,另外注意的是,susbtr获取定长的情况下才做index join,因此这里结合业务可以知道是获取4个字节长度。执行时间从原来的10s下降到0.5s
如果是不定长,大家可以感受一下

这里没有做成index join,而是做成nest loop,反而效率下降了。

4、 小结

(1)Like、substr和instr之间可以相互转换。
(2)substr获取是定长的字符串时可以利用索引做索引连接。
(3)性能优化改写主要是针对问题去找到更加高效的方法去实现。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/6 5:34:04

大梵公考:国考省考每一年的岗位一样吗?

国考省考每一年的岗位是不一样的,每年岗位都会重新制定,具体变化较大。主要变化原因:①编制调整各单位根据空编情况、业务需求申报招录计划,每年可用编制数量和岗位结构都可能调整。②政策导向变化如近年政策向基层、乡村振兴、紧…

作者头像 李华
网站建设 2026/8/7 15:24:07

大梵公考:国考和省考二选一怎么选?

国考与省考“二选一”怎么选?具体要看个人情况和职业规划。一、岗位性质对比国考:中央部委及其直属机构(如税务、海关、统计、铁路公安等),多为垂直管理,系统内流动性强。省考:省、市、县、乡四级地方机关(如政府办、发…

作者头像 李华
网站建设 2026/8/6 0:43:04

Java中如何检测死锁?如何预防和避免线程死锁?

Java死锁实战指南:从检测到预防的完整解决方案 在并发编程中,死锁如同一个隐形的陷阱,随时可能让高性能应用陷入瘫痪。当多个线程相互等待对方释放锁时,程序便会永久停滞。 本文将提供一套完整的死锁解决方案:首先介绍…

作者头像 李华
网站建设 2026/8/6 9:51:41

Day32 类的定义和方法

题目 1:定义圆(Circle)类 # 示例运行 circle Circle(5) print(f"半径: {circle.radius}") print(f"面积: {circle.calculate_area()}") print(f"周长: {circle.calculate_circumference()}") 题…

作者头像 李华