如何在Postgres中存储大型数组?



印度有大约19100个密码。对于一个应用程序,我想计算并存储任意两个密码之间的距离(这不是挑战,将使用谷歌地图API来查找它(。在计算时,大约有 1.82 亿条记录(使用 n 个数字的总和公式(。

如何以易于检索和最佳存储的方式存储此数据?

我能想到的一种选择是将其存储为具有 aroun 8500 列和 8500 行的表,但这对我来说似乎是错误的。有没有更好的方法或库可以使用?

我使用 python 和 postgresql。

我会从保持超级简单开始,创建一个具有start_pin、end_pin和距离的表格。开始和结束的复合索引。

(如果存储我们是一个大问题,可以通过使用 smallint 来表示每个 PIN 码并将其存储在查找表中来优化......但首先检查这是必要的(

最好的方法是使用 PostGIS 存储 19100 个点的位置(我不知道受地理测量的"密码"是什么,但我认为它是一个点(。

然后在需要时使用 PostGIS 计算距离。

存储n点的n * (n - 1) / 2距离是矫枉过正的。

最新更新