сортировка по убыванию занимает много времени для загрузки в mysql

У меня есть одна таблица с 33 107 887 записями.

структура таблицы: tablename

id - bigint - uniqu
text - text - fulltex index
cate_id - bigint - btree index
marchant_name - varchare - btree index
created_on - timestamp - btree index

Когда я запускаю запрос ниже, это занимает 60+ секунд

SELECT * FROM tablename where marchant_name='marchant name x' order by id  desc limit 20

но если я запустил этот запрос, это займет всего 1 секунду

SELECT * FROM tablename where marchant_name='marchant name x' order by id  asc limit 20

Примечание: здесь имя марчанта x имеет 8mn + записей в основной таблице.

Услышьте только проблему с «заказом по возрастанию» и «порядком по убыванию». Кто-нибудь может мне помочь?

Спасибо


person Hitest mail    schedule 09.11.2017    source источник
comment
Можете ли вы добавить результаты EXPLAIN для обоих запросов? Кроме того, создан ли индекс для (merchant_name, id)?   -  person raina77ow    schedule 09.11.2017
comment
оба запроса одинаковы, только их порядок отличается. например, упорядочить по id desc limit 20 и order by id asc limit 20   -  person Hitest mail    schedule 09.11.2017
comment
Это совершенно ясно из исходного сообщения. Я прошу добавить к нему результаты выполнения EXPLAIN по обоим запросам, поскольку это может указывать на то, почему разница такая резкая. Также обратите внимание, что два отдельных индекса для двух столбцов - это не то же самое, что составной индекс для двух столбцов.   -  person raina77ow    schedule 09.11.2017
comment
Возможный дубликат MySQL ORDER BY DESC выполняется быстро, но ASC очень медленный   -  person AddcitedToLearn    schedule 09.11.2017