查询优化问题

ghostxyz0 2011-06-08 12:10:11
有一张大表A, 记录用户登录日志, 5千万级数据
表中 有uid 作为用户ID字段, 非主键, 有建立索引, 不是唯一字段, 约有 1千万个不同的UID

另给了一个5K个 UID, 让查出这5K个UID中没有在A表出现过的UID


求一个优化查询 SQL
...全文
55 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
回南山种豆 2011-06-09
  • 打赏
  • 举报
回复
A 5000万级别
B 5k


select *from B where not exits (select * from A where B.uid=A.uid)


chengleibing 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 acmain_chm 的回复:]
select * from 另给了一个5K个 where not exists (select 1 from A where UID=另给了一个5K个.UID)

或者

select 另给了一个5K个.* from 另给了一个5K个 left join A on 另给了一个5K个.UID=a.UID where a.UID is null


第一个理论上速度会略快一点儿。
[/Quote]


第二个快吧!
wwwwb 2011-06-08
  • 打赏
  • 举报
回复
你的SQL语句是什么
EXPLAIN SQL语句
ACMAIN_CHM 2011-06-08
  • 打赏
  • 举报
回复
select * from 另给了一个5K个 where not exists (select 1 from A where UID=另给了一个5K个.UID)

或者

select 另给了一个5K个.* from 另给了一个5K个 left join A on 另给了一个5K个.UID=a.UID where a.UID is null


第一个理论上速度会略快一点儿。

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧