Указать индекс для ORDER BY

ElGato

Новичок
Указать индекс для ORDER BY

Есть таблица USERS, в ней, в есть поля ID,positionTS (int)
Есть 2 индекса по этим полям.

Делаю такой запрос
Код:
select ID  FROM users  
ORDER BY positionTS DESC
LIMIT 0,10
Всё работает быстро, задействован индекс по полю "positionTS"

но если написать так
Код:
select ID
FROM users 
ORDER BY positionTS DESC, ID DESC
LIMIT 0,10
т.е. добавить еще сортировку по ID, то получаем fullScan и медленное выполнение
Как сделать так чтобы этот запрос использовал индекс по полю "positionTS"?

USE INDEX ('positionTS'), как я понял не распространяется на ORDER BY.

Можно конечно сделать индекс по двум полям (positionTS,ID), а можно ли как-н обойтись без этого?
 

Wicked

Новичок
select ID from
(select ID
FROM users
ORDER BY positionTS DESC
LIMIT 0,10)
ORDER BY ID DESC ?

И сколько уникальных значений в полях positionTS и ID ?
 

ElGato

Новичок
Автор оригинала: Wicked
select ID from
(select ID
FROM users
ORDER BY positionTS DESC
LIMIT 0,10)
ORDER BY ID DESC ?

И сколько уникальных значений в полях positionTS и ID ?
О! Спасибо!
Немного модернизировав, получил такой запрос
Код:
select ID from
(select ID,positionTS
FROM users 
ORDER BY positionTS DESC
LIMIT 0,10) as res1  
ORDER BY positionTS DESC ,ID DESC;
насчёт уникальных значений:
ID это примари кей - 9001
positionTS - 1800
 
Сверху