最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql隨機(jī)查詢?nèi)舾蓷l數(shù)據(jù)的方法

 更新時(shí)間:2013年10月19日 21:27:34   作者:  
這篇文章主要介紹了mysql中獲取隨機(jī)內(nèi)容的方法,需要的朋友可以參考下

在mysql中查詢5條不重復(fù)的數(shù)據(jù),使用以下:

復(fù)制代碼 代碼如下:

SELECT * FROM `table` ORDER BY RAND() LIMIT 5

就可以了。但是真正測(cè)試一下才發(fā)現(xiàn)這樣效率非常低。一個(gè)15萬(wàn)余條的庫(kù),查詢5條數(shù)據(jù),居然要8秒以上
搜索Google,網(wǎng)上基本上都是查詢max(id) * rand()來(lái)隨機(jī)獲取數(shù)據(jù)。

復(fù)制代碼 代碼如下:

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

但是這樣會(huì)產(chǎn)生連續(xù)的5條記錄。解決辦法只能是每次查詢一條,查詢5次。即便如此也值得,因?yàn)?5萬(wàn)條的表,查詢只需要0.01秒不到。
上面的語(yǔ)句采用的是JOIN,mysql的論壇上有人使用

復(fù)制代碼 代碼如下:

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

我測(cè)試了一下,需要0.5秒,速度也不錯(cuò),但是跟上面的語(yǔ)句還是有很大差距。總覺(jué)有什么地方不正常。
于是我把語(yǔ)句改寫了一下。

復(fù)制代碼 代碼如下:

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

這下,效率又提高了,查詢時(shí)間只有0.01秒
最后,再把語(yǔ)句完善一下,加上MIN(id)的判斷。我在最開(kāi)始測(cè)試的時(shí)候,就是因?yàn)闆](méi)有加上MIN(id)的判斷,結(jié)果有一半的時(shí)間總是查詢到表中的前面幾行。
完整查詢語(yǔ)句是:

復(fù)制代碼 代碼如下:

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 t2
WHERE t1.id >= t2.id
ORDER BY t1.id LIMIT 1;

最后對(duì)這兩個(gè)語(yǔ)句進(jìn)行分別查詢10次,
前者花費(fèi)時(shí)間 0.147433 秒
后者花費(fèi)時(shí)間 0.015130 秒
看來(lái)采用JOIN的語(yǔ)法比直接在WHERE中使用函數(shù)效率還要高很多。

相關(guān)文章

  • MySql設(shè)置指定用戶數(shù)據(jù)庫(kù)查看查詢權(quán)限

    MySql設(shè)置指定用戶數(shù)據(jù)庫(kù)查看查詢權(quán)限

    這篇文章主要介紹了MySql設(shè)置指定用戶數(shù)據(jù)庫(kù)查看查詢權(quán)限,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • ubuntu kylin 14.10下多個(gè)mysql 5.7.14安裝教程

    ubuntu kylin 14.10下多個(gè)mysql 5.7.14安裝教程

    這篇文章主要為大家分享了ubuntu kylin 14.10下多個(gè)mysql 5.7.14安裝教程,感興趣的朋友可以參考一下
    2016-08-08
  • MySQL數(shù)據(jù)庫(kù)對(duì)敏感數(shù)據(jù)加密及解密的實(shí)現(xiàn)方式

    MySQL數(shù)據(jù)庫(kù)對(duì)敏感數(shù)據(jù)加密及解密的實(shí)現(xiàn)方式

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)對(duì)敏感數(shù)據(jù)加密及解密的實(shí)現(xiàn)方式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2020-03-03
  • mysql 設(shè)置自動(dòng)創(chuàng)建時(shí)間及修改時(shí)間的方法示例

    mysql 設(shè)置自動(dòng)創(chuàng)建時(shí)間及修改時(shí)間的方法示例

    這篇文章主要介紹了mysql 設(shè)置自動(dòng)創(chuàng)建時(shí)間及修改時(shí)間的方法,結(jié)合實(shí)例形式分析了mysql針對(duì)創(chuàng)建時(shí)間及修改時(shí)間相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • Navicat中新建MySQL數(shù)據(jù)庫(kù)與新建、修改、刪除數(shù)據(jù)表及刪除數(shù)據(jù)庫(kù)詳細(xì)操作方法

    Navicat中新建MySQL數(shù)據(jù)庫(kù)與新建、修改、刪除數(shù)據(jù)表及刪除數(shù)據(jù)庫(kù)詳細(xì)操作方法

    Navicat是一套快速、可靠并價(jià)格相當(dāng)便宜的數(shù)據(jù)庫(kù)管理工具,專為簡(jiǎn)化數(shù)據(jù)庫(kù)的管理及降低系統(tǒng)管理成本而設(shè),這篇文章主要給大家介紹了關(guān)于Navicat中新建MySQL數(shù)據(jù)庫(kù)與新建、修改、刪除數(shù)據(jù)表及刪除數(shù)據(jù)庫(kù)詳細(xì)操作的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • MySQL事務(wù)的SavePoint簡(jiǎn)介及操作

    MySQL事務(wù)的SavePoint簡(jiǎn)介及操作

    SavePoint是數(shù)據(jù)庫(kù)事務(wù)中的一個(gè)概念, 可以將整個(gè)事務(wù)切割為不同的小事務(wù), 可以選擇將狀態(tài)回滾到某個(gè)小事務(wù)發(fā)生時(shí)的樣子,本文給大家分享MySQL事務(wù)的SavePoint重要操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-01-01
  • Mysql中tinyint(1)和tinyint(4)的區(qū)別詳析

    Mysql中tinyint(1)和tinyint(4)的區(qū)別詳析

    這篇文章主要給大家介紹了關(guān)于Mysql中tinyint(1)和tinyint(4)區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Mysql5.7在windows7下my.ini文件加載路徑及數(shù)據(jù)位置修改方法

    Mysql5.7在windows7下my.ini文件加載路徑及數(shù)據(jù)位置修改方法

    這篇文章主要介紹了Mysql5.7在windows7下my.ini文件加載路徑及數(shù)據(jù)位置修改方法,需要的朋友可以參考下
    2018-02-02
  • MySQL臨時(shí)表的具體使用

    MySQL臨時(shí)表的具體使用

    MySQL中的臨時(shí)表是在會(huì)話期間存在的表,本文主要介紹了MySQL臨時(shí)表的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • mysql免安裝版配置教程

    mysql免安裝版配置教程

    這篇文章主要為大家詳細(xì)介紹了mysql免安裝版配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01

最新評(píng)論

南平市| 尉犁县| 青河县| 高雄县| 枣阳市| 开鲁县| 肇东市| 许昌市| 临澧县| 海口市| 遂宁市| 永兴县| 永胜县| 当雄县| 乐都县| 武强县| 堆龙德庆县| 宜春市| 临桂县| 洞头县| 万载县| 行唐县| 渭南市| 咸丰县| 双城市| 赫章县| 光泽县| 华宁县| 固镇县| 新巴尔虎左旗| 高青县| 锡林郭勒盟| 汾西县| 贵阳市| 建湖县| 墨脱县| 定陶县| 云南省| 家居| 肇东市| 临邑县|