laravel高性能地從mysql資料庫中隨機獲取n條數據

2020-12-08 php中文網

laravel如何高性能地從mysql資料庫中隨機獲取n條數據,有時候我們常常會需要從資料庫隨機獲取數據,比如:給工作人員隨機分配10個訂單,隨機從資料庫中隨機抽查100個用戶;這樣我們就需要隨機從資料庫獲取數據。

一、使用原生SQL從資料庫獲取100條數據

從Mysql官網可以看到,可以讓ORDER BY RAND()和LIMIT一起使用,可以用於從多行結果中選取隨機的一部分。

SELECT * FROM table WHERE name="" ORDER BY RAND() LIMIT 100;

那麼在laravel中使用原生SQL也很簡單,如下所示:

$info = DB::select('SELECT * FROM table WHERE name="" ORDER BY RAND() LIMIT 100');

二、使用原始表達式從數據隨機獲取數據

我們都知道laravel的原始表達式,我們可以使用DB::raw('RAND()')從資料庫隨機獲取數據。同時你還可以使用orderByRaw('RAND()')從資料庫隨機獲取數據,和DB::raw('RAND()')效果一樣

$info=self::where('dealing','<>','')->orderBy(DB::raw('RAND()')) ->take(5) ->get();

三、使用laravel的inRandomOrder方法隨機獲取數據

laravel中使inRandomOrder會對數據結果進行隨機排序,達到我們隨機從資料庫獲取數據的效果:

$info = DB::table('users')->inRandomOrder() ->take(5) ->get();

相關焦點

  • 基於MySQL的高性能資料庫應用開發
    一、高性能資料庫的選擇---- 在資料庫的應用開發中,常常會遇到性能和代價的之間矛盾。Windows NT+MySQL能否成為構建高性能資料庫應用的理想選擇呢?作者用MySQL的數據接口改寫了程序,經過一段時間的運行,證明MySQL確實是高效而穩定的資料庫,非常適合構建大容量、高效率、易維護、高性價比的資料庫應用系統。現將MySQL的安裝、運行、開發的心得與大家共享。
  • laravel框架實戰,資料庫的增刪改查,facade的使用
    在上一篇的文章中,我們學習了如何讓在laravel中創建視圖和模型的操作,今天我們將來學習如何在laravel中對資料庫進行增刪改查,通過facade來實現,具體操作如下:前提:首先我們需要在laravel中配置好資料庫,進入laravel的目錄,找到.env這個文件,在裡面對資料庫的主機名,資料庫名,用戶名,密碼進行配置,配置成功之後,我們才能夠對資料庫進行設置
  • 考前複習必備MySQL資料庫(關係型資料庫管理系統)
    複合索引,索引可以覆蓋多個數據列,如像 INDEX (columnA, columnB) 索引。這種索引的特點是 MySQL 可以有選擇地使用一個這樣的索引。$retval ){ die('無法插入數據: ' . mysqli_error($conn));}echo "數據插入成功\n";mysqli_close($conn);?
  • MySQL資料庫「十宗罪」(十大經典錯誤案例)
    ,今後再遇到任何報錯,我們都可以很淡定地去處理。解決問題的辦法:根據報錯信息,我們可以獲取到報錯日誌和position號,然後就能找到主庫執行的哪條sql,導致的主從報錯。解決思路:目前是進入不了資料庫的情況,所以我們要考慮是不是可以跳過權限。因為在資料庫中,mysql資料庫中user表記錄著我們用戶的信息。
  • 在MySQL中使用XML數據—數據格式化
    【IT168 技術文檔】在上一篇文章中,我介紹了MySQL對XML支持的部分功能,包括--xml命令行選項,以及MySQL 5.1.5中開始引入的新功能。今天我將介紹如何更好地格式化XML輸出內容。
  • MySQL資料庫常用命令詳解
    從圖3-45可以看出,執行該命令後,終端窗口顯示了當前MySQL下有四個資料庫,分別是information_schema\mysql\performance_schema\sys\,這四個資料庫都是系統資料庫。
  • 從零開始學 MySQL -- 創建資料庫並插入數據
    介紹 MySQL 新建資料庫,新建表,插入數據以及基本數據類型的相關知識。在 Linux 環境裡創建一個名為 mysql_shiyan 的資料庫。在資料庫創建兩張表 employee 和 department,分別表示員工表和部門表。
  • 【用binlog日誌】恢復 MySQL 資料庫刪除數據
    在數據丟失的緊急情況下,可以嘗試用binlog日誌功能進行數據恢復操作。正是由於binlog日誌以上的特性,在實際的案件取證中也可以通過binlog日誌來恢復刪除數據。要通過binlog日誌恢復mysql資料庫刪除數據的前提:binlog日誌確定是開啟的。
  • MYSQL資料庫操作案例
    MySQL 創建資料庫CREATE DATABASE 資料庫名;以下命令簡單的演示了創建資料庫的過程,數據名為 RUNOOB:[root@host]# mysql -u root -p >例如刪除名為 RUNOOB 的資料庫:mysql> drop database RUNOOB;MySQL 選擇資料庫以下實例選取了資料庫 RUNOOB:[root@host]# mysql -u root -p
  • MySQL分頁優化解析
    似乎討論分頁的人很少,難道大家都沉迷於limit m,n?在有索引的情況下,limit m,n速度足夠,可是在複雜條件搜索時,where somthing order by somefield+somefieldmysql會搜遍資料庫,找出「所有」符合條件的記錄,然後取出m,n條記錄。
  • MySQL資料庫測試題
    MySQL資料庫入門1、假設要按照分頁(每頁顯示10條)的形式獲取test表中的數據,在MySql>資料庫中,以下哪條語句是取第2頁中的數據?,以下哪條語句用於統計test表中的記錄總數?test(資料庫名已經存在)中的表結構和數據?
  • MySQL資料庫筆記
    <3>DOS命令窗口方式停止:net stop mysql 切記不要加分號登錄MySQL資料庫:mysql -uroot -p 回車 輸入密碼登錄MySQL資料庫:mysql -uroot -p密碼 回車語法:mysql -h 伺服器主機地址
  • MySQL 資料庫「十宗罪」(十大經典錯誤案例)
    今天給大家說說《資料庫中十大經典錯誤案例》老牛我在剛開始學習資料庫的時候,沒少走彎路。經常會遇到各種稀奇古怪的 error 信息,遇到報錯會很慌張,急需一個解決問題的辦法。跟無頭蒼蠅一樣,會不加思索地把錯誤粘到百度上,希望趕緊查找一下有沒有好的處理問題的方法。我想這個應該是剛從事資料庫的小白,都會遇到窘境。
  • Python 操作MySQL資料庫
    資料庫並創建號表、欄位。> 第三步:python中使用pymysql連接mysql的庫,安裝命令:pip install pymysql 第四步:查詢數據、插入數據,編寫如下Python代碼:= pymysql.connect(user='root',passwd='test123456',db='autotest',port=3306,host='127.0.0.1',charset='utf8')    #獲取資料庫操作遊標
  • 「資料庫分享」MySQL資料庫優化
    後臺可回復【資料庫】即可獲取相關寶藏內容分享:)前言:Q: 為什麼面試問你MySQL優化的知識 總是沒有特別特別足的底氣回復??每秒查詢率(QPS,Queries-per-second)沒有大量的數據供測試,一般在學習環境中,只是手工添加幾百上萬條數據,數據量小,看不出語句之間的明確區別.Q: 如何提高MySQL的性能?A: 需要優化,則說明效率不夠理想.
  • 「MySQL系列」分析Sql執行時間及查詢執行計劃(附資料庫和一千萬數據)
    不要慌,我們已準備了一千萬條數據。接下來看看如何將這一千萬條數據快速導入到資料庫中。1.創建表和導入一千萬條數據表和數據地址(gitee) https://gitee.com/flowerAndJava/millions_data2.
  • 將mysql數據導入access資料庫
    首頁 > 語言 > 關鍵詞 > 最新資訊 > 正文 將mysql數據導入access資料庫
  • MySQL資料庫
    TRUNCATE TABLE 表名:刪除數據:若要向表內所有列都添加數據,那麼欄位名可以省略,注意,所有欄位添加數據的順序必須和原表中順序一致。向表中某些欄位添加數據:INSERT INTO 表名 (欄位1,欄位2) VALUES (欄位1值,欄位2值);向表中一次添加多行數據:INSERT INTO info VALUES (5,'liu',13),(6,'liu',13),(7,'liu',13);增:標準格式INSERT INTO 表名 (欄位1,欄位2....)
  • MySQL教程之MySQL定時備份資料庫
    一、MySQL數據備份1.1、 mysqldump命令備份數據在MySQL中提供了命令行導出資料庫數據以及文件的一種方便的工具mysqldump,我們可以通過命令行直接實現資料庫內容的導出dump,首先我們簡單了解一下mysqldump命令用法:
  • MySQL資料庫及應用
    這四類語句分別是:數據定義語句、數據操縱語句、數據查詢語句和數據控制語句。A. 對B. 錯7 單選 在MySQL資料庫中,要訪問任何一個對象都要通過其名稱來完成,在SQL語言中,對資料庫、表、變量、存儲過程、函數等的定義和引用都需要通過變量來完成。