where接自定义函数导致查询缓慢

问题

mysql在where后接自定义函数查询时查询时间暴增,秒级查询变分钟

导致问题代码
SELECT * from temp where name=(select prc_jtof("张三"));
分析原因

prc_jtof是自定义繁简体转换函数,类似于接了一个复杂子查询,致使全表扫描每一条记录都走一遍子查询 (?为什么不是把子查询结果缓存下来匹配)

解决办法

把子查询结果拿出来做匹配

SELECT * from temp temp join (select prc_jtof("张三") as pfname) pf where temp.name=pf.pfname;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值