MySQL 資料庫中的高效簡單隨機取樣
從大型資料庫中取樣資料通常是統計分析或子取樣以進行進一步處理所必需的。一個常見的問題是從包含數百萬行的 MySQL 資料庫中選擇一個簡單的隨機樣本。
SELECT * FROM table ORDER BY RAND() LIMIT 10000 的簡單方法會產生顯著的效能開銷,因為需要對整個表格進行排序。隨著表大小的增加,這種方法變得非常慢。
高效的解決方案
更有效的方法是利用 MySQL 產生隨機數的能力。查詢 SELECT * FROM table WHERE rand()
這個方法有幾個優點:
透過對錶的較大子集進行取樣(例如,所需樣本大小的2-5 倍),在插入或更新時對隨機列進行索引,然後對該索引進行過濾,可以進一步優化採樣過程。此方法提供了索引掃描效能的優勢,並允許更高精度的樣本大小。
總而言之,SELECT * FROM table WHERE rand()
以上是如何在MySQL中有效率地進行簡單的隨機取樣?的詳細內容。更多資訊請關注PHP中文網其他相關文章!