我在PostgreSQL服務器數據庫上有一個表,幾乎有3百萬行,我需要將所有行保存到一個CSV文件。這裏的問題是,每次運行該過程時,行必須保存在不同的隨機訂單中。如何從postgreSQL表中檢索隨機數據行?
值得注意的是它是一個C#WinForms應用程序。
我嘗試將數據加載到列表<>並使用洗牌算法,但它花了很長時間才完成,我真的需要它快。我認爲直接在查詢中執行會更快,但我不知道如何執行。
我在PostgreSQL服務器數據庫上有一個表,幾乎有3百萬行,我需要將所有行保存到一個CSV文件。這裏的問題是,每次運行該過程時,行必須保存在不同的隨機訂單中。如何從postgreSQL表中檢索隨機數據行?
值得注意的是它是一個C#WinForms應用程序。
我嘗試將數據加載到列表<>並使用洗牌算法,但它花了很長時間才完成,我真的需要它快。我認爲直接在查詢中執行會更快,但我不知道如何執行。
通常情況下,你可以ORDER BY
的數據庫味道隨機函數,像
SELECT * FROM table ORDER BY RANDOM()
這可能是因爲洗牌的名單,根據數據庫服務器或產品上慢。
看到這個問題Selecting random rows
花了16秒返回查詢,還算可以接受,比洗牌的方式更快。非常感謝。 – 2011-03-29 13:12:04