【发布时间】:2017-04-14 04:51:14
【问题描述】:
考虑以下查询以获取计数:
查询 A
SELECT
COUNT(*)
FROM
"user_notifications"
WHERE
"user_notifications"."source_id" = 5196
AND "user_notifications"."source_type" = 'MassGifting'
AND "user_notifications"."status" = 'sent'
AND "user_notifications"."read_at" IS NULL
查询 B 它也在同一张桌子上,只是 where 子句略有不同,尝试根据通知的状态检查通知的声音,如果它们已根据 source_id 和 source_type 读取。:
SELECT
COUNT(*)
FROM
"user_notifications"
WHERE
"user_notifications"."source_id" = 5196
AND "user_notifications"."source_type" = 'MassGifting'
AND (
"user_notifications"."read_at" IS NOT NULL
)
执行细节: 耗时:5-6秒。执行这两个查询并在我们的网站上呈现报告总共需要大约 30-60 秒。
我想知道我们可以通过什么方式来加快速度?
【问题讨论】:
-
您的 user_notifications 表中有多少数据?你有任何排序键或分布键吗? where条件下没有排序键,提速是相当困难的。
标签: amazon-redshift