How to retrieve randomized data rows from a postgreSQL table?
I have a table on a PostgreSQL server database wi开发者_JAVA百科th almost 3 million rows and I need to save all rows to a CSV file. The problem here is that the rows must be saved in a different random order each time I run the process.
Worth noting that it's a C# WinForms app.
I tried loading the data into a List<> and using a shuffling algorithm but it took forever to finish, and I realy need it to be fast. I think doing it directly in the query will be much faster but I don't have a clue on how to do it.
Typically, you can just ORDER BY
a random function of your database flavor, like
SELECT * FROM table ORDER BY RANDOM()
This might be as slow as shuffling the list, depending on the database server or product.
See this question Selecting random rows
See this wonderful link Depesz MY THOUGHTS ON GETTING RANDOM ROW
精彩评论