gpt4 book ai didi

SQLite 查询使用 TEMP B-TREE FOR ORDER BY 而不是索引

转载 作者:行者123 更新时间:2023-12-02 02:52:33 25 4
gpt4 key购买 nike

我有一个非常简单的表,其中包含 2 列:message_id 和 server_timestamp,但是当我查看此查询的计划时:

sqlite> explain query plan select message_id, server_timestamp from messages group by message_id order by server_timestamp;
selectid|order|from|detail
0|0|0|SCAN TABLE messages USING COVERING INDEX index_messages_id_server_timestamp
0|0|0|USE TEMP B-TREE FOR ORDER BY

其中index_messages_id_server_timestamp是(message_id, server_timestamp)上的索引。

为什么这个查询需要使用临时 B 树进行排序?

最佳答案

由于 GROUP BY,表的多行可能会导致输出中只有一行。这破坏了 message_idserver_timestamp 值之间的关系,因此不再可能证明使用索引对它们进行排序是有效的。

关于SQLite 查询使用 TEMP B-TREE FOR ORDER BY 而不是索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38317904/

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