• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于千万级别查询效率,该怎么处理

mysql 搞代码 7年前 (2018-06-05) 98次浏览 已收录 0个评论

关于千万级别查询效率
SELECT account.UserID, account.Account,account.LastAccessMsg,account.LastAccessTime,account.CreateTime FROM T_UserAccount account WHERE UserID NOT IN (SELECT DISTINCTROW bill.UserID FROM T_User_Bill bill ) ORDER BY account.CreateTime DESC 
我想查在T_User_Bill 中没有的用户,应该怎样效率好点啊?求……T_User_Bill 1000多w的数据 ,T_UserAccount 20W

——解决方案——————–
不要用 not in

userID 上加索引。

SQL code

 select account.* from T_UserAccount account left join T_User_Bill bill on account.UserID = bill.UserID where bill.UserID is null; 
------解决方案--------------------
在T_User_Bill 的UserID上加索引

select *
from T_UserAccount A
where not exists (select 1 from T_User_Bill B where A.UserID =B.UserID )
------解决方案--------------------

SQL code

 SELECT * FROM T_UserAccount A WHERE not EXISTS(SELECT 1 FROM T_User_Bill B WHERE A.UserID=B.UserID); 
------解决方案--------------------
SELECT account.UserID, account.Account,account.LastAccessMsg,account.LastAccessTime,account.CreateTime 
FROM T_UserAccount account 
WHERE not exists (select 1 from T_User_Bill where UserID=account.UserID)

欢迎大家阅读《关于千万级别查询效率,该怎么处理》,跪求各位点评,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于千万级别查询效率,该怎么处理
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址