MySQL,按多列排序导致索引失败

问题描述 投票:0回答:0

desc 表 ta, tb:

create table ta (
    id bigint primary key auto_increment,
    name varchar(20) default ''
);
create table tb (
    id bigint primary key auto_increment,
    aid bigint references ta,
    home varchar(20) default '',
    index tb_aid (aid)
);

加载测试数据,ta的大小为400k,tb的大小为200k

sql 一个成本-时间 3s

select *
from ta left join tb on ta.id = tb.aid
order by ta.id desc, tb.id desc
limit 10

sql B 成本-时间 74ms(只需删除

, tb.id desc
):

select *
from ta left join tb on ta.id = tb.aid
order by ta.id desc
limit 10

解释一个: explain sql A

解释B: explain sql B

如何提高sql A速度?

mysql sql sql-order-by
© www.soinside.com 2019 - 2024. All rights reserved.