我需要存储在MySQL数据库中的大量纬度和经度.我正在阅读有关要使用的字段类型的冲突建议.
数据的示例是…
Lat | Long
------------------------
53.670827 | -1.093991
50.894701 | 0.061115
52.288213 | -1.822060
根据Google的this document,他们建议字段类型为FLOAT(10,6)
我已经尝试过了,输入57.098554时将其更改为57.098553,但是输入-2.252504可以正确存储.
作为替代方案,我计划使用以下…
Lat DECIMAL(10, 8)
Long DECIMAL(11,8)
有人有更好的建议吗?我对DECIMAL设置是否正确?
解决方法:
都错了!您链接到的google文档是从2009开始的,mysql从那以后已经走了很长一段路.特别是JSON的引入,并等待它…. mysql 5.7中的spatial data类型
自介绍以来,存储位置的正确方法是将其作为POINT字段.这也为您打开了一系列空间数据功能.否则,您需要手工编写某些东西,就像开发人员在引入它之前必须要做的那样.
内置的地理空间功能可以使用索引,而自制功能通常由于无法正确使用索引而速度较慢.