有一个查询
select * from A where aid in (select aid from b where uid=1)
但是现在b表的数据我根据uid做了缓存也就是说
这个查询我可以修改为
select * from A where aid in (1,2,3,4,5,6,7)
理论上来减少了一个表的扫描,性能应该是提升了,但是当生成的sql语句很长之后(也就是uid=1的记录比较多)查询时间反而加大了?不明白为什么会这样
in 可以使用exists 、join替代优化查询
使用联表查询试试看(不用子查询的方式),另外如果A表的字段不多的话就不要用*了,字段都列出来查,应该也能快一点吧
你轻视了DBMS,就这样.