国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

mysql - SQL語句可以提供“查詢表,并至第100條結果為止”嗎?

瀏覽:100日期:2022-06-20 16:24:24

問題描述

描述問題:目前想用SQL語句來查詢一個表(50萬條),并將表內昵稱為空的用戶Openid拿出來,每百條查詢一次。環(huán)境MySQL。

問題關鍵:一次性取出,分百條查詢,也會給服務器造成很大壓力(*1),能不能讓SQL查詢出100條符合結果的記錄,并返回最后一條的ID?

拓展:除了我這種想法,業(yè)界有沒有一個合適的方案?或者關于SQL大容量查詢 的一些書籍。

*1:首先,我的服務器是小水管,50萬條已經相當重了。其次,就算我現在擴展服務器配置,假設某天達到了1億條,也會成為很大的負載壓力。

表結構:id openid nickname avatar

部分openid的nickname或avatar(頭像)是空的,想要每次查出100個nickname或avatar(頭像)為空的openid,并調用微信接口,將獲取到的信息插入。

問題解答

回答1:

能不能讓SQL查詢出100條符合結果的記錄,并返回最后一條的ID?

這個問題有點奇怪,到底是要返回100條數據呢?還是返回這100條數據里的最后一條ID呢?

首先50W條數據不算多,除非部署服務器的機器性能非常差,所以查詢速度應該不至于很慢(除非你寫了很復雜或者性能很低的SQL),分多次取出的話的確可以減輕數據庫壓力,但會增加網絡傳輸壓力。

另外,50W表數據的解決方案跟1E表數據的解決方案是完全不同的,所以不要妄想一套方案可以一勞永逸。

附上SQL:

SELECT DISTINCT openid FROM tableWHERE nickname IS NULLOR avatar IS NULLORDER BY id DESCLIMIT 100

由于用到了OR,所以估計用不上nickname和avatar的索引,或者你可以增加一個叫completed的字段,表示該條記錄是否已經完善(即nickname和avatar均不為空,在程序插入數據時就維護該字段),這樣你的查詢SQL就可以避免OR連接了。

回答2:

把需要查詢的字段都建上索引,在你現在這個場景下千萬級數據都不會有壓力

回答3:

1.索引加了沒有?2.SQL優(yōu)化一下

50萬數據真心不算多啊。

回答4:

搞不懂你要實現什么功能,查出100條卻只返回最后一條的一個列,沒意義,區(qū)區(qū)50w數據而已,非要實現加索引寫存儲過程也就差不多了mysql - SQL語句可以提供“查詢表,并至第100條結果為止”嗎?mysql - SQL語句可以提供“查詢表,并至第100條結果為止”嗎?480w行的表查符合條件的列并返回所有整行,10秒而已,你的問題可能出在符合條件的行太多輸出時內存不夠,你可以寫游標把結果一條一條插入一張新表,時間慢點而已。

回答5:

加索引,或者把數據庫定時寫入緩存

回答6:

你這樣很沒意思,搞得我聲望成負的了,結果不理想可以討論,直接刪算什么

主站蜘蛛池模板: 欧美一区在线观看视频 | 一级特黄国产高清毛片97看片 | 99国产高清久久久久久网站 | 97人摸人人澡人人人超一碰 | 亚洲精品美女国产一区 | 高清一级毛片免免费看 | 亚洲综合爱久久影院 | 久久精品国产影库免费看 | 男女性高清爱潮视频免费观看 | 免费一级毛片私人影院a行 免费一级毛片无毒不卡 | 久久91亚洲精品中文字幕 | 91热久久免费频精品黑人99 | 国产成人一级片 | 欧美片a | 亚洲精品一区二区三区在线观看 | 亚洲视频免费观看 | 一区二三国产 | 亚洲视频免费在线看 | 国产成人精品一区二区三在线观看 | 99久久综合狠狠综合久久一区 | 亚洲一区二区精品推荐 | 午夜宅男宅女看在线观看 | 免费看欧美一级特黄a大片一 | 中文字幕乱码中文乱码51精品 | 中国胖女人一级毛片aaaaa | 交视频在线观看国产网站 | 日韩在线视频免费 | 成人精品视频在线观看播放 | 亚洲最大情网站在线观看 | 国产美女自拍视频 | 日本vs欧美一区二区三区 | 亚洲一区在线播放 | 亚洲欧洲小视频 | 亚洲精品不卡视频 | 伊人婷婷色香五月综合缴激情 | 欧美a大片欧美片 | 精品国产午夜肉伦伦影院 | 中文字幕一区在线观看 | 欧美视频在线一区 | 亚洲欧美日韩国产精品影院 | 一区二区三区欧美日韩国产 |