postgresql – Postgres不使用带有“ORDER BY”的索引
发布时间:2020-12-13 18:04:36 所属栏目:百科 来源:网络整理
导读:我有一张很大的桌子. 我在列col1上有一个索引. 我想获得col1订购的数据. 从查询计划我可以说它不使用索引. 当我添加“LIMIT”时,它开始使用索引 对于“LIMIT”的大值,它将停止使用索引. 任何线索? 附:我想通过col1的值(不一定排序),除了“ORDER BY”之外的
>我有一张很大的桌子.
>我在列col1上有一个索引. >我想获得col1订购的数据. >从查询计划我可以说它不使用索引. >当我添加“LIMIT”时,它开始使用索引 >对于“LIMIT”的大值,它将停止使用索引. 任何线索? 附:我想通过col1的值(不一定排序),除了“ORDER BY”之外的任何建议来获取数据. 谢谢 !!
如果从表中返回所有行,则索引扫描将比表扫描慢.
为什么你认为你需要使用索引? 你可能会尝试使用 set enable_seqscan = false 为了禁用顺序扫描,但我确信它会比顺序扫描慢. ORDER BY是对数据进行排序的唯一方法.您可能会看到的任何其他排序都是纯粹的巧合 编辑要清理:我不建议关闭seq扫描.我刚发布这个作为一种方式来表明seq扫描确实比索引扫描更快.一旦关闭,使用索引扫描的执行计划很可能比显示OP的seq扫描更慢,因为不需要索引扫描. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |