1

我正在为位置数据创建一个 SQLite 数据库。大约有 1000 万行,我想尽快获得 SELECT 语句。

我只需要发布一次数据库,我不在乎创建阶段需要多长时间。

用户一次只会查看地图的一部分,因此需要同时访问地理上彼此接近的数据。

我已将数据拆分为几个图块。每个瓦片对应一个基于开放街道地图瓦片的纬度和经度区域

我的问题是,为了最快的查找时间,我应该:

  1. 有多个数据库,每个图块一个数据库,或者
  2. 拥有一个数据库,包含多个表,每个图块一个表,或者
  3. 拥有一个只有一张表的大数据库,因为拆分数据不会使搜索变得更快。

我可以尝试每种方式,但我真的很想了解解决方案。

4

1 回答 1

3

如果您有多个数据库或多个表,则您的代码必须在执行实际搜索查询之前找出要搜索的一个。此外,如果搜索窗口与两个图块重叠,您必须进行两次搜索并合并结果。此外,拆分并不能帮助您在一个图块内进行搜索。

要进行地理搜索,您应该使用像R-tree这样的二维索引。当您这样做时,搜索会自动限制在数据的适当部分,因此使用一个表既简单又最快。

于 2012-11-22T09:05:53.827 回答