大家好!

最近遇到有時候使用 order by rand() 速度很慢的問題
有時候資料量很大 確實會造成這問題
不知道到底是不是跟MYSQL 效能有關
網路上找一找有找到這方式
-- 先 JOIN 一個隨機參數表 (其實也是有用到 RAND() 函數 ) -- id 最大值是用來讓 RAND 不要太小 -- XXXX_items 是要拿來排序的表單 JOIN (SELECT CEIL(RAND() * (SELECT MAX(id) FROM XXXX_items)) AS rid) AS r2 -- 使用隨機ID排序 ORDER BY r2.rid
用起來好像比較快
但是有時候也是忽快忽慢...
經過一些經驗

我覺得MYSQL搜尋速度與table的大小有深刻關係
如果一個表單有 text 很多資料的話
確實會拖慢排序...
即使我們不是使用 text 排序也會有影響
我想這應該與暫存資料表的方式有關係...
給大家參考囉
感恩

留言板
歡迎留下建議與分享!希望一起交流!感恩!