MYSQL下的SQL语句优化 1C

SQL语句如下:
EXPLAIN INSERT into tmptable select * from itemdata_0_high where id in
(
select min(id) from itemdata_0_high
group by auctionId having count(auctionId) > 1
)
or
id in
(
select id from itemdata_0_high group by auctionId having count(auctionId) = 1
);
执行计划结果如下:
图片说明
目前已经给auctionId加上了索引。不知道为何还是走的全表扫描呢

2个回答

不走索引是因为你用了count函数

EXPLAIN INSERT into tmptable select * from itemdata_0_high where id in
(
select min(id) from itemdata_0_high
group by auctionId
)

你试试这个语句是否满足你的要求

shen931205
shen931205 你的写法还是走不了auctionId列的索引,不过确实简化了SQL语句。
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐