将数据拆分为多个SQLite表或数据库可以更快地检索数据

时间:2012-11-21 22:52:15

标签: sql sqlite

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

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

用户只能一次查看地图的一部分,因此需要同时访问地理位置相近的数据。

我已将数据拆分为多个图块。每个图块对应于纬度和范围的区域。经度based on open street map tiles

我的问题是,对于最快的查询时间,我应该:

  1. 拥有多个数据库,每个磁贴一个数据库,或者
  2. 有一个数据库,包含多个表,每个磁贴一个表,或者
  3. 只有一个表有一个大数据库,因为拆分数据不会使搜索更快。
  4. 我可以尝试各种方式,但我真的很想了解解决方案。

1 个答案:

答案 0 :(得分:3)

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

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