mysql反查优化记录

有数据库相关的问题,我有一个表,里面有三列,customer简化之后表结构如下:

id name source
1 客户1 a渠道
2 客户1 b渠道
3 客户2 a渠道
4 客户3 a渠道
5 客户1 c渠道

我现在的逻辑是根据传进来的id查找name,然后再根据name来查找id;例如:传进来id是1和3,根据这两个id查到name值为客户1和客户2,然后根据这两个name去查询id,可得到1,2,3,5,翻译成sql就是下面的。

select id,name from customer where name in(select name from customer where id in(1,3));

现在有十万客户,这里面大概有1200左右的重复客户,有没有什么比较好的办法优化?传进来的id特别多,大概四万个id,所以执行起来很慢。现在id和name已经做了索引。
此问题记录一下,我现在正在找好的解决方案,出现这个问题的原因是,多个系统迭代,对接,遗留的老问题。改动原始数据的话,影响颇大!

解决方法不限制,可以redis之类的外部缓存。

猜你喜欢

转载自blog.csdn.net/zhezhebie/article/details/91985121
今日推荐