#### 距离的存储/检索/排序 ####

阅读: 评论:0

#### 距离的存储/检索/排序 ####

#### 距离的存储/检索/排序 ####

目录

矩形范围(mysql)

使用内置函数(mysql)

## Geohash(mysql)

## 空间索引(es/mysql/postgreSQL/mongo/redis)

矩形范围(mysql)

根据维基百科的球面计算公式,根据圆心坐标计算正方形四个点的坐标,查询正方形内的目标点。

SELECT * FROM xxx WHERE ((lat BETWEEN ? AND ?) AND (lng BETWEEN ? AND ?));

优点

简单

缺点

有误差,索引利用率不高,不易缓存,距离无序。

使用内置函数(mysql)

缺点:查询语句长,索引效率差

MySQL 和 Java 根据经纬度查询最近距离,适用于所有数据库方案 - Java开发 - 程序喵

Mysql 数据库,经纬度距离计算/经纬度范围检索 (谷歌方案) - YellosSword - 博客园

## Geohash(mysql)

Geohash算法是一种地址编码,它能把二维的经纬度编码成一维的字符串,存到mysql的一列string类型即可,查询时计算处置后再查询。

例如:东圃幼儿园的GeoHash是wtw3ued9m,查询1KM内的幼儿园时, 使用SELECT * FROM xxx WHERE 存储GeoHash的字段 like 'wtw3ued%';

go实现:geohash算法以及求最邻近区域的点-golang - Go语言中文网 - Golang中文社区

优点

简单可控。

索引效率高。

易缓存。

通过编码精度可模糊坐标、隐私保护等。

缺点

距离无序,距离的排序需在内存二次运算得出,翻页时有点尴尬。

有误差,边界8区问题。

## 空间索引

1、mysql/postgreSQL/mongo/redis

缺点:例如mysql的空间索引不可以和其他普通索引做联合联合查询

2、es

本文发布于:2024-02-03 02:49:07,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170689974748153.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:距离
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23