【问题标题】:How to retrieve randomized data rows from a postgreSQL table?如何从 postgreSQL 表中检索随机数据行?
【发布时间】:2011-07-25 06:40:50
【问题描述】:

我在 PostgreSQL 服务器数据库上有一个表,其中包含近 300 万 行,我需要将所有行保存到 CSV 文件中。这里的问题是,每次我运行该进程时,行必须以不同的随机顺序保存。

值得注意的是,它是一个 C# WinForms 应用程序。

我尝试将数据加载到 List 并使用洗牌算法,但它需要很长时间才能完成,我真的需要它快速。我认为直接在查询中执行此操作会快得多,但我不知道如何执行此操作。

【问题讨论】:

    标签: c# postgresql random


    【解决方案1】:

    通常,您可以ORDER BY 一个您的数据库风格的随机函数,例如

    SELECT * FROM table ORDER BY RANDOM()
    

    这可能和随机列表一样慢,具体取决于数据库服务器或产品。

    【讨论】:

    • 返回查询需要 16 秒,相当可接受并且比改组快得多。非常感谢。
    【解决方案2】:

    看到这个问题Selecting random rows

    看到这个精彩的链接Depesz MY THOUGHTS ON GETTING RANDOM ROW

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-23
      • 1970-01-01
      • 2013-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-05
      相关资源
      最近更新 更多