如何加快PostgreSQL 9.4中的偏移窗口速度

时间:2016-02-11 10:29:47

标签: performance postgresql indexing

我正在努力将70M行从源表移动到目标表,并使用完整转储并在另一端恢复它不是一个选项。我决定创建一个小的SQL文件,一次选择1M行,并将行插入新表(在清理之后)。问题变成我需要用1M块迭代遍历70M行,我才意识到每次迭代都变得越来越慢。

有没有办法创建部分索引来加速具有OFFSET 0 LIMIT 1000000,OFFSET 1000000 LIMIT 1000000等的查询?

示例:

快速:

choice <- function(input) {
  switch(input,
         "x"="x1",
         "y"="x2",
         "z"="x3",
         NA)
}
#> choice("x")
#[1] "x1"
#> choice("z")
#[1] "x3"
#> choice("other")
#[1] NA

慢:

SELECT id FROM huge_table ORDER BY id OFFSET 0 LIMIT 1000000

很慢:

SELECT id FROM huge_table ORDER BY id OFFSET 1000000 LIMIT 1000000

0 个答案:

没有答案