您好,登錄后才能下訂單哦!
小編給大家分享一下MySQL如何隨機取數據最高效率,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
發現在SQL語句里有一個 ORDER BY rand() 這樣的一個語句,這個說是用著方便,但是效率實在是太低了,于是我用了以下的方法來優化,就是用JOIN表的方法來達到這個取隨機數據行的方法,你可以用 EXPLAIN SQL語句來分析一下以下兩條SQL語句的效率,當然,數據量至少上10萬以上才能看出性能。
[1]普通方法, 效率太低
SELECT * FROM table ORDER BY rand() LIMIT 10;
[2] JOIN的方法:
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 10;
以上是“MySQL如何隨機取數據最高效率”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。