У меня есть простой вопрос:
У меня есть база данных postgresql: Scores(score integer)
.
Как бы я получил самые высокие 10 баллов быстрее?
UPDATE: я буду делать этот запрос несколько раз и буду стремиться к самому быстрому решению.
Для этого вы можете использовать limit
select *
from scores
order by score desc
limit 10
Если производительность важна (когда это не так;-), найдите индекс по результату.
Начиная с версии 8.4, вы также можете использовать стандартный (SQL: 2008) fetch first
select *
from scores
order by score desc
fetch first 10 rows only
Кажется, что вы ищете ORDER BY
в DESC
окончательном порядке с LIMIT:
SELECT
*
FROM
scores
ORDER BY score DESC
LIMIT 10
Конечно, SELECT *
может серьезно повлиять на производительность, поэтому используйте его с осторожностью.