gpt4 book ai didi

sql - 两列的 ORDER BY 比两列的 ORDER BY 慢得多

转载 作者:行者123 更新时间:2023-11-29 12:33:23 24 4
gpt4 key购买 nike

我有一个看起来像这样的模式:

create table image_tags (
image_tag_id serial primary key,
image_id int not null
);

create index on image_tags(image_id);

当我执行包含两列的查询时,速度慢得离谱(例如,select * from image_tags order by image_id desc, image_tag_id desc limit 10;)。如果我在排序中删除其中一列(哪个无关紧要),它会非常快。

我在两个查询中都使用了 explain,但它并没有帮助我理解为什么 order by 子句中的两列如此缓慢,它只是告诉我有多少使用两列速度较慢。

最佳答案

要通过索引优化order by image_id desc, image_tag_id desc 排序,您需要有这个索引:

create index image_tags_id_tag on image_tags(image_id, image_tag_id);

只有一个复合索引(我认为几乎没有异常(exception),但在这种情况下不是)将有助于优化器使用它来立即确定顺序。

关于sql - 两列的 ORDER BY 比两列的 ORDER BY 慢得多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26092250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com