我有一个简单的请求,如:
SELECT id, champs1, champs2, champs3, count(*) OVER() AS full_count
FROM my_table
ORDER BY champs1 ASC
LIMIT 10 OFFSET 0
LIMIT和OFFSET用于对我的结果进行分页。
但请求很慢:约20秒。我的" my_table"表有~8百万行。
我在" champs1"上放了一个索引。专栏,但它仍然很慢。
如何更快地提出此请求?谢谢你的帮助
答案 0 :(得分:2)
在没有full_count
的情况下运行查询需要多长时间?这可能是问题的一部分(我不确定)。
你可以试试这个:
SELECT id, champs1, champs2, champs3, fc.full_count
FROM my_table CROSS JOIN
(SELECT count(*) as full_count FROM my_table) fc
ORDER BY champs1 ASC
LIMIT 10 OFFSET 0;
然后,请确保您在my_table(champs1)
上有索引。