Я пытаюсь выяснить, какой самый эффективный способ получить n-ю самую высокую запись в базе данных mySQL:
SELECT *
FROM table_name
ORDER BY column_name DESC
LIMIT n - 1, 1
или
SELECT *
FROM table_name AS a
WHERE n - 1 = (
SELECT COUNT(primary_key_column)
FROM products b
WHERE b.column_name > a. column_name)
Существует индекс на имя_ столбца.
Я бы подумал, что MySQL будет эффективно выполнять предложение limit, и первый вариант - это путь.
Мне не очень понятно, что именно делает 2-й запрос, так что, если он более эффективен, кто-нибудь может объяснить, почему.
Спасибо.