У меня есть одна таблица с 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 + записей в основной таблице.
Услышьте только проблему с «заказом по возрастанию» и «порядком по убыванию». Кто-нибудь может мне помочь?
Спасибо
EXPLAIN
для обоих запросов? Кроме того, создан ли индекс для(merchant_name, id)
? - person raina77ow   schedule 09.11.2017EXPLAIN
по обоим запросам, поскольку это может указывать на то, почему разница такая резкая. Также обратите внимание, что два отдельных индекса для двух столбцов - это не то же самое, что составной индекс для двух столбцов. - person raina77ow   schedule 09.11.2017