性能问题… 我有一个有地理位置数据(经度和纬度)的房屋数据库。 我想要做的是find使用InnoDB数据库引擎将位置数据存储在我的MySQL(v5.0.24a)中的最佳方式,这样我可以执行很多查询,在这里我将返回所有位于x1和x2 latitude和y1和y2 longitude 。 现在,我的数据库模式是 ——————— Homes ——————— geolat – Float (10,6) geolng – Float (10,6) ——————— 我的查询是: SELECT … WHERE geolat BETWEEN x1 AND x2 AND geolng BETWEEN y1 AND y2 上面描述的是使用Float(10,6)在MySQL中存储经纬度数据并分离出经度/纬度的最好方法吗? 如果不是,那是什么? 作为数据types,存在Float,Decimal和Spatial。 从性能angular度来看,这是执行SQL的最佳方式吗? 如果不是,那是什么? 使用不同的MySQL数据库引擎是否有意义? 更新:仍然没有答案 下面我有3个不同的答案。 一个人说使用Float 。 一个人说使用INT 。 一个人说使用Spatial 。 所以我用MySQL“EXPLAIN”语句来衡量SQL的执行速度。 如果对经度和纬度数据types使用INT或FLOAT ,那么SQL执行(结果集取回)完全没有区别。 它也似乎使用“ BETWEEN ”语句比使用“ > […]
什么时候应该使用KEY , PRIMARY KEY , UNIQUE KEY和INDEX ?