我有一個資料表 大概 15 萬筆資料 其實也沒很多

before

        $posts = Post::inRandomOrder()
            ->limit(1000)
            ->get();

這樣寫,結果跑起來超慢,然後我改寫

after

        $posts = Post::orderBy('id', 'desc')
            ->where('id', '<', rand(1, \DB::table('posts')->max('id')))
            ->limit(1000)
            ->get();

雖然,這樣就沒有很隨機了,而是從隨機中間點,抽 1000 筆出來

但因為我在產生 sitemap 而已,所以其實可接受

算是 laravel 小小地雷


每週二 YT 直播問答,DC 可 Call-in,一起討論技術、職涯發展。
YT 👇👇👇
https://www.youtube.com/@codelove_tw
DC 👇👇👇
https://discord.gg/fvCF2whZ9D

共有 0 則留言


每週二 YT 直播問答,DC 可 Call-in,一起討論技術、職涯發展。
YT 👇👇👇
https://www.youtube.com/@codelove_tw
DC 👇👇👇
https://discord.gg/fvCF2whZ9D
🏆 本月排行榜
🥇
站長阿川
📝11   💬6   ❤️9
461
🥈
我愛JS
📝1   💬5   ❤️4
90
🥉
AppleLily
📝1   💬4   ❤️1
50
#4
💬1  
5
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次