gpt4 book ai didi

mysql - 获取主键在范围内的行

转载 作者:行者123 更新时间:2023-11-29 13:38:51 26 4
gpt4 key购买 nike

是否可以在重负载下有效地对大表(可能有十亿行)进行范围扫描,以获取主键在范围内的所有行。主键是BIGINT类型。行非常短,只是主键之外的另一个 INT 字段。仅对该表执行此类查询。

无论如何要优化此类查询或表吗?也许我可以存储始终排序的行,以便范围扫描更容易?

是否有可能在大表上以良好的性能执行此类查询?

最佳答案

主键列会自动索引,因此对范围的访问应该表现得很好。使用 BETWEEN 条件:

select * from mytable
where id between ? and ?

当然,如果范围很大,由于返回的行数过多,性能会很慢。

此外,如果范围的大小超出一定限制(优化器将决定,但通常是总行数的 1/11),则不会使用索引,而是会进行完整的故事扫描,因为它实际上是如果访问的行的百分比足够大,则比使用索引更快。

如有疑问,请在查询上运行EXPLAIN以显示访问是如何完成的。如果它使用索引,那么它可能会尽可能快。

关于mysql - 获取主键在范围内的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18394063/

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