国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

mysql隨機(jī)取數(shù)據(jù)的幾種高效率方法

2024-07-24 12:39:21
字體:
供稿:網(wǎng)友

我用最簡單的也是常用的方法來看看,下面再介紹高效的mysql隨機(jī)數(shù)據(jù)的方法,有需要的朋友可以參考一下.

1]普通方法,效率太低,代碼如下:

SELECT * FROM table ORDER BY rand() LIMIT 10;

[2]JOIN的方法,代碼如下:

  1. SELECT *  
  2. FROM `tableAS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `table`) – (SELECT MIN(id) FROM `table`)) + (SELECT MIN(id) FROM `table`)) AS id) AS t2  
  3. WHERE t1.id >= t2.id  
  4. ORDER BY t1.id LIMIT 10; 

再把語句完善一下,加上MIN(id)的判斷,我在最開始測試的時(shí)候,就是因?yàn)闆]有加上MIN(id)的判斷,結(jié)果有一半的時(shí)間總是查詢到表中的前面幾行.

完整查詢語句是,代碼如下:

  1. SELECT * FROM `table
  2. WHERE id >= (SELECT floor( RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`)) + (SELECT MIN(id) FROM `table`))) 
  3. ORDER BY id LIMIT 1; 
  4. SELECT * 
  5. FROM `tableAS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`))+(SELECT MIN(id) FROM `table`)) AS id) AS t2  --Vevb.com 
  6. WHERE t1.id >= t2.id 
  7. ORDER BY t1.id LIMIT 1; 

前者花費(fèi)時(shí)間 0.147433 秒

后者花費(fèi)時(shí)間 0.015130 秒

都是查詢10咨物.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 萨迦县| 留坝县| 大兴区| 衡南县| 垫江县| 揭西县| 荣昌县| 铁岭市| 博罗县| 微博| 鱼台县| 呼图壁县| 霍林郭勒市| 连州市| 麻江县| 平陆县| 衡水市| 逊克县| 明星| 毕节市| 阿勒泰市| 南丹县| 肃宁县| 广昌县| 玉树县| 灌南县| 巫山县| 西畴县| 综艺| 观塘区| 迁西县| 铁岭市| 南和县| 象山县| 和龙市| 甘孜| 济阳县| 米脂县| 五台县| 新化县| 衡东县|