gpt4 book ai didi

sql - 如何在mysql中有效存储连续变量

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

我熟悉索引在 sql 中的工作原理,但据我了解,索引不适用于连续变量(如纬度/经度、价格、时间等)。

我可以想到几种假设的方法来更快地搜索连续列,方法是按范围对它们进行聚类,或者将它们排序存储,然后对它们进行二分搜索。不过我不知道sql是否支持这些方法。

  1. 我提出的方法实际上存在于 SQL 中吗?
  2. 是否有另一种更快的解决方案来存储和搜索连续变量?

最佳答案

索引在连续变量上工作得很好,并且它的实现方式与您建议的方式类似。索引存储在 B+ 树中,并且树的叶子是有序的。因此,如果您进行范围查询,它们运行得非常快,因为它可以顺序扫描树的叶子。

您可以通过多种方式告诉 SQL 实现此功能以提高性能,但默认设置在大多数情况下效果很好。

纬度/经度是一个不同的故事,因为您正在二维查询。例如您可能会询问特定纬度/经度 100 英里范围内的所有商店。这些类型的字段最好存储在 R 树中。除了 B+ 树之外,大多数 RDBMS 都实现了这一点。

关于sql - 如何在mysql中有效存储连续变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4978997/

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