Общая стратегия Redshift - много сканировать, но распараллеливать.Любой случай, который включает получение единственного ряда, не будет идеальным.Тем не менее, вы можете сделать четыре вещи:
1.Снизить сканирование до точки
Если страна всегда будет фильтроваться по полю, сначала установите в качестве ключа сортировки для таблицы составной ключ сортировки по стране.
2.Избавьтесь от необходимости сортировки
Более эффективный способ сделать ORDER BY x LIMIT 1
часто МАКС.
Затем попробуйте
SELECT *
FROM installs
WHERE pk = (
SELECT MAX(pk) -- or install_date, if install date is unique
FROM installs
WHERE country = 'China'
)
3.Адаптируйте выбранные столбцы между ориентированными на строки и столбчатыми
При запросе столбчатой базы данных, такой как Redshift, для выбора * несет затраты для каждого столбца.Попробуйте выбрать только нужные вам столбцы.
4.Добавьте больше узлов, чтобы каждый узел меньше сканировал
(убедитесь, что для данных не задан стиль распространения всех)