如何缓存基于位置的数据库查询?

时间:2012-02-12 09:37:27

标签: php mysql codeigniter caching geolocation

所以,我正在构建一个使用lat / lon坐标将位置保存到数据库的应用程序。用户可以使用创建日期(“最近”)或位置(“附近”)来获取这些记录。我现在的目标是实现缓存以加速应用程序。

对于最近的部分,我猜这很简单,只需将查询缓存一分钟左右,但对于基于位置的查询,这没有任何意义。我目前正从地图中获取用户位置,并从数据库中获取25个最近的位置。由于用户可以自由地移动地图(iOS),因此不存在两次击中完全相同位置的机会,这让我相信我在这里使用了错误的方法。

我如何安排我的数据和查询,以便用户仍然可以根据他们的位置获得结果,但仍然可以利用一些缓存。这甚至可能吗?

1 个答案:

答案 0 :(得分:1)

您可能需要将地图划分为某种形式的网格系统(想想覆盖棋盘),以便一组点位于同一区域。这将为您提供一些定义密钥缓存(或至少缓存所在的容器)。您可以使用第二组较大的方块来查找“关闭”项目。