mysql - 在 MySQL 数据库中存储纬度/经度时使用的理想数据类型是什么?

标签 mysql database-design maps mapping latitude-longitude

考虑到我将对纬度/经度对执行计算,哪种数据类型最适合与 MySQL 数据库一起使用?

最佳答案

基本上这取决于您所在位置所需的精度。使用 DOUBLE,您将获得 3.5nm 的精度。 DECIMAL(8,6)/(9,6) 下降到 16 厘米。浮子是1.7m...

这个非常有趣的表格有一个更完整的列表:http://mysql.rjweb.org/doc.php/latlng :

Datatype               Bytes            Resolution

Deg*100 (SMALLINT)     4      1570 m    1.0 mi  Cities
DECIMAL(4,2)/(5,2)     5      1570 m    1.0 mi  Cities
SMALLINT scaled        4       682 m    0.4 mi  Cities
Deg*10000 (MEDIUMINT)  6        16 m     52 ft  Houses/Businesses
DECIMAL(6,4)/(7,4)     7        16 m     52 ft  Houses/Businesses
MEDIUMINT scaled       6       2.7 m    8.8 ft
FLOAT                  8       1.7 m    5.6 ft
DECIMAL(8,6)/(9,6)     9        16cm    1/2 ft  Friends in a mall
Deg*10000000 (INT)     8        16mm    5/8 in  Marbles
DOUBLE                16       3.5nm     ...    Fleas on a dog

关于mysql - 在 MySQL 数据库中存储纬度/经度时使用的理想数据类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56486869/

相关文章:

mysql - `=` 和 `<=>` 之间有性能差异吗?

php - symfony2 mysql 基于时间间隔的排名

perl - 如何实现不涉及加载到内存的对象持久化?

r - ggplot2中具有Choropleth映射的网格

leaflet - Leaflet是否有可用的离线Map图层?

android - GoogleMapOptions发生奇怪的崩溃

mysql - "mysql join with not equal to operator "不工作

mysql - 如何使用 join 优化查询

java - 用户表、评级表和位置表之间的关系是什么?

sql - 在sql查询中保存记录过滤条件