Re: clustering by latitude / longitude
Hey guys,
I agree that restricting your query to a latitude and longitude region is the best proposed solution thus far. However, it is a spatially partitioned indexing method and might not (or maybe it is!) right for your application. The problem with using a spatial partitioning indexing is that it does not reduce the complexity involved if the dataset has clustering (lots of datapoints densely packed within a given region - something probably very common for the service you're offering since one would expect the number of datapoints in a region to be directly proportional to the population in that area so cities would have a dense set of points whereas suburban areas would be much more sparse). In the extreme, if ALL your datapoints fell within a latitude/longitude region (of the smallest granularity region size you're using) then your query's performance is the same as if you didn't partition the space at all!
Also, how are you going to deal with searching for datapoints in neighboring regions that might fall within your range query?
To mitigate all of the above issues, my suggestion is to pursue the "spatial extensions" of mySql as was suggested by another member. mySql uses an R-Tree to index your dataset. It is a dataset partitioning index so it scales better with whatever dataset you give it (unless your dataset is uniformly distributed over the space then it's performance should be roughly that of the latitude/longitude method, no worse). Plus all the complex issues you raised above (especially with regard to performance) have been worked out and are highly optimized for storing on external memory.
I haven't used mySql for spatial queries so I couldn't help you out there (the mySql reference pages should though), but I have learned a bit of the algorithms and theory involved in spatial indexing methods. Sorry if this isn't of much practical value.
Edited 2 time(s). Last edit at 10/21/2005 10:22AM by Dustin Burke.
Subject
Views
Written By
Posted
28369
October 19, 2004 06:04AM
10909
October 19, 2004 07:55AM
9311
October 19, 2004 11:14AM
10345
October 21, 2004 09:28AM
9231
October 19, 2004 06:59PM
7688
October 20, 2004 07:39AM
7694
October 21, 2004 09:10AM
8942
October 22, 2004 07:17AM
6876
October 23, 2004 02:48AM
6297
October 23, 2004 03:09AM
6408
October 23, 2004 03:12AM
6294
October 23, 2004 02:59PM
8065
October 24, 2004 12:34PM
5584
October 24, 2004 01:31PM
Re: clustering by latitude / longitude
13215
October 21, 2005 10:21AM
7336
October 24, 2005 05:07PM
5642
January 28, 2006 05:24AM
5190
March 02, 2006 04:24PM
7285
October 09, 2007 09:28AM
5799
December 06, 2005 05:34AM
7091
December 06, 2005 06:36AM
5377
December 24, 2005 01:10PM
8934
December 26, 2005 03:49PM
5509
October 09, 2007 09:36AM
7212
December 26, 2005 03:51PM
14365
December 26, 2005 04:21PM
16192
January 20, 2006 10:26AM
7605
January 11, 2006 06:37AM
10463
February 26, 2006 05:31PM
15894
March 02, 2006 05:23PM
5566
May 02, 2006 03:09PM
8137
May 03, 2006 08:59AM
8695
June 06, 2006 04:09AM
29496
December 13, 2007 04:10PM
5623
August 15, 2008 01:52AM
6243
April 05, 2006 02:59PM
4780
May 02, 2006 03:22PM
5747
May 05, 2006 09:44AM
14683
June 25, 2006 09:32PM
5570
August 30, 2006 12:54PM
6094
July 14, 2007 01:09AM
7700
November 03, 2006 10:25AM
Sorry, you can't reply to this topic. It has been closed.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion
of Oracle or any other party.