我在一个四亿行分区mysql表中有lat/lon坐标。该表增长@ 2000记录一分钟,旧数据每隔几周就会刷新一次。我正在探索如何对这些数据进行空间分析。
大多数分析都需要找出一个点是在一个特定的lat/lon多边形中,还是哪一个多边形包含这个点。
我认为处理多边形问题的方法如下:
想听听一些想法和建议。
发布于 2012-09-19 13:29:01
一些想法。
首先,PostgreSQL和MySQL在性能调优方面完全不同。因此,如果您选择移植路线,请准备重新考虑您的索引策略。PostgreSQL不仅比MySQL具有更灵活的索引,而且表方法也有很大的不同,这意味着适当的索引策略和策略一样不同。不幸的是,这意味着你可以期望有一点挣扎。如果我能给出建议的话,我建议先删除所有的非关键索引,然后根据需要少加它们。
第二点是,这里没有人能在这一点上给你大量的实际建议,因为我们不知道你的程序的内部结构。在PostgreSQL中,最好只索引所需的内容,但是可以索引函数的输出(在这种情况下确实很有用),而且只能索引表的一部分。
我更像是PostgreSQL,而不是MySQL,所以我当然认为你应该和PostgreSQL一起去。然而,与其告诉你为什么等,让你在这个比例上挣扎,我会告诉你一些我想要使用的东西,如果我试图这样做的话。
为相关analysis
。
最后,在这个卷上切换db将是一个学习曲线,您需要为此做好准备。但是,PostgreSQL可以很好地处理卷。
发布于 2012-03-22 10:31:48
这里的行数与此完全无关。问题是,在多边形功中,有多少点可以由索引来完成。
答案取决于多边形有多大。
PostGIS非常快速地找到多边形边框中的所有点。然后,它需要更多的努力来找出点是否实际上在多边形内。
如果你的多边形是小的(小的边框),查询将是有效的。如果你的多边形很大或有一个形状,使包围框很大,那么它的效率就会降低。
如果你的多边形或多或少是静态的,那么周围就有工作。你可以把你的多边形划分成较小的多边形,然后重新创建id蕾丝。那么这个指数就会更有效率。
如果您的多边形实际上是多多边形,则第一步是使用ST_Dump将多多边形拆分为多边形,并在结果上重新创建和构建索引。
HTH
尼可拉斯
https://stackoverflow.com/questions/9695821
复制相似问题