亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL 隨機函數獲取數據速度和效率分析

2024-07-24 13:11:20
字體:
來源:轉載
供稿:網友

在mysql中帶了隨機取數據的函數,在mysql中我們會有rand()函數,很多朋友都會直接使用,如果幾百條數據肯定沒事,如果幾萬或百萬時你會發現,直接使用是錯誤的。下面我來介紹隨機取數據一些優化方法。

SELECT * FROM table_name ORDER BY rand() LIMIT 5;

rand在手冊里是這么說的:

RAND()
RAND(N)

返回在范圍0到1.0內的隨機浮點值。如果一個整數參數N被指定,它被用作種子值。

mysql> select RAND();    -> 0.5925mysql> select RAND(20);    -> 0.1811mysql> select RAND(20);    -> 0.1811mysql> select RAND();    -> 0.2079mysql> select RAND();    -> 0.7888

你不能在一個ORDER BY子句用RAND()值使用列,因為ORDER BY將重復計算列多次。然而在MySQL3.23中,你可以做: SELECT * FROM table_name ORDER BY RAND(),這是有利于得到一個來自SELECT * FROM table1,table2 WHERE a=b AND c<d ORDER BY RAND() LIMIT 1000的集合的隨機樣本。注意在一個WHERE子句里的一個RAND()將在每次WHERE被執行時重新評估。

網上基本上都是查詢max(id) * rand()來隨機獲取數據。

SELECT *FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table`)) AS id) AS t2WHERE t1.id >= t2.idORDER BY t1.id ASC LIMIT 5;

但是這樣會產生連續的5條記錄。解決辦法只能是每次查詢一條,查詢5次。即便如此也值得,因為15萬條的表,查詢只需要0.01秒不到。

上面的語句采用的是JOIN,mysql的論壇上有人使用

SELECT *FROM `table`WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM `table` )ORDER BY id LIMIT 1;

我測試了一下,需要0.5秒,速度也不錯,但是跟上面的語句還是有很大差距

后來請教了baidu,得到如下代碼

完整查詢語句是:

SELECT * FROM `table`WHERE id >= (SELECT floor( RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`)) + (SELECT MIN(id) FROM `table`))) ORDER BY id LIMIT 1;SELECT *FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`))+(SELECT MIN(id) FROM `table`)) AS id) AS t2WHERE t1.id >= t2.idORDER BY t1.id LIMIT 1;

最后在php中對這兩個語句進行分別查詢10次,

前者花費時間 0.147433 秒

后者花費時間 0.015130 秒

執行效率需要0.02 sec.可惜的是,只有mysql 4.1.*以上才支持這樣的子查詢.

注意事項 查看官方手冊,也說rand()放在ORDER BY 子句中會被執行多次,自然效率及很低。

以上的sql語句最后一條,本人實際測試通過,100W數據,瞬間出結果。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91天堂在线视频| 国产精品第100页| 欧美激情精品久久久久久免费印度| 97在线视频观看| 日韩欧美一区二区在线| 国产精品九九九| 国产精品亚洲视频在线观看| 高清亚洲成在人网站天堂| 亚洲综合av影视| 日本精品久久中文字幕佐佐木| 欧美激情一级二级| 日本精品一区二区三区在线| 亚洲一区www| 亚洲国内高清视频| 69**夜色精品国产69乱| 欧美国产日韩一区二区在线观看| 亚洲深夜福利在线| 韩国日本不卡在线| 亚洲黄色片网站| 成人欧美一区二区三区黑人| 俺去啦;欧美日韩| 久久综合久久88| 日韩成人网免费视频| 亚洲一区中文字幕在线观看| 中文字幕欧美亚洲| 青青草国产精品一区二区| 一区二区福利视频| 久久久免费观看视频| 国产精品av在线播放| 日韩视频免费中文字幕| 久久亚洲精品网站| 亚洲精品综合久久中文字幕| 亚洲尤物视频网| 欧美日韩中国免费专区在线看| 日韩成人在线播放| 欧美激情亚洲另类| 亚洲国产免费av| 热久久这里只有| 国产美女精品视频| 欧美xxxx14xxxxx性爽| 欧美视频一区二区三区…| 黄色一区二区三区| 亚洲欧美视频在线| 欧美精品在线观看| 中文欧美日本在线资源| 国产精品久久久999| 亚洲天堂男人的天堂| 欧美精品在线第一页| 91九色单男在线观看| 国产精品亚洲第一区| 57pao国产精品一区| 亚洲色图欧美制服丝袜另类第一页| 国产精品成人av性教育| 97视频免费观看| 亚洲黄一区二区| 92看片淫黄大片欧美看国产片| 亚洲国产天堂久久国产91| 久久久91精品国产| 亚洲性xxxx| 456亚洲影院| 欧美另类老肥妇| 中文字幕免费国产精品| 91久久国产精品91久久性色| 久久久久久亚洲精品中文字幕| 欧美电影院免费观看| 91系列在线播放| xxav国产精品美女主播| 欧美成人小视频| 亚洲欧美成人在线| 欧美日本黄视频| 日韩精品欧美激情| 精品久久久久久久久中文字幕| 欧美日韩另类字幕中文| 综合欧美国产视频二区| 在线日韩日本国产亚洲| 日韩欧美国产网站| 久久久久久久久综合| 国产精品综合久久久| 欧美另类精品xxxx孕妇| 欧美日韩亚洲激情| 亚洲精品乱码久久久久久金桔影视| 久热精品视频在线观看一区| 亚洲国产小视频| 国产精品永久免费在线| 黑人欧美xxxx| 奇门遁甲1982国语版免费观看高清| 欧美电影免费观看电视剧大全| 欧美成人剧情片在线观看| 久久久久国产视频| 亚洲aⅴ日韩av电影在线观看| 国产精品嫩草视频| 久久成年人免费电影| 91精品国产综合久久香蕉| 97精品久久久中文字幕免费| 久久91亚洲人成电影网站| 欧美另类暴力丝袜| 亚洲最新av在线网站| 国产成人亚洲综合| 在线看福利67194| 亚洲一区二区国产| 久久精品久久精品亚洲人| 国产69精品久久久久99| 欧美成人国产va精品日本一级| 日韩av在线免播放器| 亚洲xxx视频| 亚洲综合中文字幕在线观看| 成人高h视频在线| 日韩在线观看免费全集电视剧网站| 亚洲最大av在线| 91成人精品网站| 日韩免费在线电影| 亚洲国产精品久久久| 国产xxx69麻豆国语对白| 欧美激情精品久久久久| 欧美夜福利tv在线| 国产日韩精品综合网站| 精品久久久精品| 国产黑人绿帽在线第一区| 亚洲一区制服诱惑| 国产精品青青在线观看爽香蕉| 亚洲视频在线观看免费| 久久综合九色九九| 亚洲国产一区自拍| 精品国产91乱高清在线观看| 高清欧美电影在线| 亚洲香蕉伊综合在人在线视看| 日韩电影中文字幕在线观看| 亚洲精品国产美女| 日韩一二三在线视频播| 欧美日韩中文字幕综合视频| 欧洲成人午夜免费大片| 欧美性jizz18性欧美| 国产精品美女www| 久久久www成人免费精品| 国产91网红主播在线观看| 久久av在线播放| 91视频九色网站| 亚洲精品久久久一区二区三区| 国产日韩欧美在线看| 最近2019年好看中文字幕视频| 亚洲视频axxx| 日韩在线视频免费观看高清中文| 亚洲国产美女精品久久久久∴| 久久香蕉国产线看观看av| 久久欧美在线电影| 亚洲女人天堂色在线7777| 国产成+人+综合+亚洲欧洲| 欧美午夜宅男影院在线观看| 精品少妇一区二区30p| 91国产视频在线| 在线看片第一页欧美| 欧美日韩国产色视频| 久久综合伊人77777蜜臀| 久久精品亚洲一区| 欧美久久精品午夜青青大伊人| 亚洲第一天堂av| 亚洲色图50p| 国产一区二区视频在线观看| 久久在线精品视频| 九九久久久久99精品| 中文字幕9999| 成人中心免费视频| 在线精品播放av| 国产视频久久网|