【发布时间】:2021-04-29 10:32:46
【问题描述】:
我有这样的查询:
select
p.id,
p.status as status,
p.promotionid as id,
p.name as name,
p.promotion_type as promotionType,
p.created_date as createdDate,
p.start_date as startDate,
p.end_date as endDate,
p.orders_display_count,
p.users_display_count,
pd.display_name as displayName
from promotion p
inner join promotion_details pd on p.promotion_details=pd.id
where p.tenant_id = '1234'
and p.status = 'active'
order by users_display_count asc limit 0, 40;
上面的查询大约需要 3 秒,但是当我将 users_display_count 更改为 desc 顺序时,它需要 0.5 秒。两种排序顺序都使用相同的“users_display_count”列索引,知道为什么会这样,有什么方法可以改善 asc 顺序询问? 谢谢。
【问题讨论】:
-
Edit 显示完整的表架构,包括列类型和键。此外,检查并发布执行计划。
标签: mysql sorting join innodb sqlperformance