如何从 postgreSQL 表中检索随机数据行?
我在 PostgreSQL 服务器数据库上有一个表,其中包含近 300 万 行,我需要将所有行保存到 CSV 文件中。这里的问题是,每次运行该过程时,必须以不同的随机顺序保存行。
值得注意的是,它是一个 C# WinForms 应用程序。
我尝试将数据加载到 List<> 中并使用洗牌算法,但它花了很长时间才能完成,我真的需要它很快。我认为直接在查询中执行此操作会快得多,但我不知道如何执行此操作。
I have a table on a PostgreSQL server database with 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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
通常,您可以
ORDER BY
您的数据库风格的随机函数,例如这可能与打乱列表一样慢,具体取决于数据库服务器或产品。
Typically, you can just
ORDER BY
a random function of your database flavor, likeThis might be as slow as shuffling the list, depending on the database server or product.
看到这个问题选择随机行
看到这个精彩的链接Depesz 我对获取随机行的想法
See this question Selecting random rows
See this wonderful link Depesz MY THOUGHTS ON GETTING RANDOM ROW