Как получить рандомизированные строки данных из таблицы postgreSQL? - PullRequest
1 голос
/ 29 марта 2011

У меня есть таблица в базе данных сервера PostgreSQL с почти 3 миллионами строками, и мне нужно сохранить все строки в файл CSV. Проблема здесь заключается в том, что строки должны сохраняться в другом случайном порядке каждый раз, когда я запускаю процесс.

Стоит отметить, что это приложение C # WinForms.

Я попытался загрузить данные в List <> и использовать алгоритм перетасовки, но это заняло целую вечность, и мне действительно нужно, чтобы это было быстро. Я думаю, что выполнение этого непосредственно в запросе будет намного быстрее, но я не знаю, как это сделать.

Ответы [ 2 ]

3 голосов
/ 29 марта 2011

Как правило, вы можете просто ORDER BY случайную функцию вашего вида базы данных, например

SELECT * FROM table ORDER BY RANDOM()

Это может быть так же медленно, как перетасовывать список, в зависимости от сервера базы данных или продукта.

2 голосов
/ 29 марта 2011

См. Этот вопрос Выбор случайных строк

См. Эту замечательную ссылку Depesz МОИ МЫСЛИ ПО СЛУЧАЮ СЛУЧАЙНОЙ СТРОКИ

...