如何使服务器实时计算更有效

时间:2009-12-29 01:54:06

标签: mysql real-time

我在网站上使用mySQL数据库来计算基于zipcodes,纬度和经度的多个点的距离。 例如。邮政编码123456的A点的纬度为100,经度为200 使用静态公式,计算点A与多个其他点之间的距离并实时返回。参考点A可以使用不同的纬度/经度

更改为B点

问题是服务器CPU最大化并花了很长时间才进行这些计算。我可以增加CPU功率,但想知道是否有更有效的方法来做到这一点。

将距离放入数据库是不实际的,因为它意味着N x N查找(999999 x 999999),并且随着更多数据点的添加将呈指数增长。

2 个答案:

答案 0 :(得分:1)

数据库服务器的设计并未将快速算术作为主要目标。

确保您有效地充分利用索引。

如果您需要实际距离,请使用fast square root公式,否则只需比较距离的平方。

在适当的地方使用缓存。

答案 1 :(得分:1)

听起来你在做地理上的事情,你考虑过http://postgis.refractions.net/吗? (如果你不受MySQL限制),因为它被调整/设计用于计算有点像这样。