由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - 搜索效率问题请教
相关主题
搜索最近距离内的用户?long and CLOB.. any differences?
新手问个spatial data的问题(sql 2008)Does MS SQL 7 support SQL3 Datatype?
Access database 求助求教...初级问题
请教ssisIs "Dim mydb as database" a user-defined datatype
SQL multiply all values of a column in table (转载)how to write this query, need help !!
question on large tables (>=800 million records, 10 G bytes of data)question
SQL find distinct values in large tablehow to see all the tables in SQL*PLUS?
有没有人用postgres?有个drop table的问题question for webdb guru
相关话题的讨论汇总
话题: 地址话题: table话题: 1234话题: 50mile话题: dist
进入Database版参与讨论
1 (共1页)
s********e
发帖数: 893
1
一个Table里有5万个地址,每个地址已经计算了latitude和longitude。
现在需要找出每个地址的50Mile以内的其它地址和相应距离。我打算把这5万个地址的
50mile以内的其他地址都先算好,把ID和距离存在table里面。现在有两种储存方式:
1.
ID DIST_ID Distance
1234 3434 2.3
1234 3456 3.4
1234 6655 12.5
1234 6644 26.5
1234 7788 45.6
如果平均每个地址有20个其他地址在50mile以内,那这个table就有1Million条记录
第二种储存方式是:
2. ID Dist_ID_Mile
1234 3434,2.3, 3456,3.4,6655,12.5,6644,26.5,7788,45.6
这样这个Table也是5万条记录。
只是检索时要parse 后面这个长字符串,把ID和distance另外保存起来。这个工作可以
在web application里做。

请问大家这两种的利弊.要用在web 实时检索,所以performance要好。或者有没有更好
的办法。谢谢了!
i*****w
发帖数: 75
2
Note that the distance between A and B is the same for B and A. So you
should not have 1mi rows. When using option 1 storing data, just check to
see if the querying ID matches your ID OR DIST_ID column.

【在 s********e 的大作中提到】
: 一个Table里有5万个地址,每个地址已经计算了latitude和longitude。
: 现在需要找出每个地址的50Mile以内的其它地址和相应距离。我打算把这5万个地址的
: 50mile以内的其他地址都先算好,把ID和距离存在table里面。现在有两种储存方式:
: 1.
: ID DIST_ID Distance
: 1234 3434 2.3
: 1234 3456 3.4
: 1234 6655 12.5
: 1234 6644 26.5
: 1234 7788 45.6

s********e
发帖数: 893
3
谢谢楼上的答复。这个的确可以减少一半的records。适用于所有地址都在一个Table这
种情况。
还有另外一个table A只有3000条地址,需要从这个5万条记录的table B中找出Table A
里每个地址50mile以内的地址。写了个stored procedure,10几分钟运行完后,新的
distance table有2.5Mil record,平均每条地址有800条其他地址在50mile内, 而不
是我预测的20条。 测试了一下用方法1检索的时候速度很快,结果都是在0.0几秒内出
来。
如果按照方法2把这800个distane和他们对应的ID存在一个字符串里,再parse,直觉觉
得会不入方法1。
再次感谢!
w*****m
发帖数: 20421
4
5万个地址还好吧,要有5百万个地址怎么办,
还有如果有一个新地址进来找附近50MILES的,
你这个还是搞不了的,不是有SPATIAL DATATYPE了
s********e
发帖数: 893
5
谢谢楼上提示。Oracle 和Sql server现在都有spatial datatype了,还有现成的
function计算距离。所以在web applicaiton 里实时直接计算就应该可以了,不用预先
存储。多谢了。
1 (共1页)
进入Database版参与讨论
相关主题
question for webdb guruSQL multiply all values of a column in table (转载)
Help about mysqlquestion on large tables (>=800 million records, 10 G bytes of data)
SQL问题求救!!SQL find distinct values in large table
有关m# sql server text字段类型一问有没有人用postgres?有个drop table的问题
搜索最近距离内的用户?long and CLOB.. any differences?
新手问个spatial data的问题(sql 2008)Does MS SQL 7 support SQL3 Datatype?
Access database 求助求教...初级问题
请教ssisIs "Dim mydb as database" a user-defined datatype
相关话题的讨论汇总
话题: 地址话题: table话题: 1234话题: 50mile话题: dist