我在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