MySQL Forums
Forum List  »  GIS

proposed solution:
Posted by: Gregor Melhorn
Date: October 21, 2004 09:28AM

My present solution looks like this:

There are four classes of distance:

0-50 km, 50-100 km, 100-150 km, 150 - 250 km.

For each class I create a table with three columns: "zip_seek", "zip_target" and "distance".

Tables have a multi-column index on "zip_seek" and "distance".

A second index on "zip_target" exists, for faster joins.

In "zip_seek" I put the zip I'm searching for. Then I generate a record for every other zip belonging to this class (e.g. that is up to 50 km away to "zip_seek"). This zip is put in "zip_target". Distance in km is put in "distance", calculated from the geodata I have.

Then I physically sort the table based on my multi-column index (theres a mysql command for this, somewhere in the manual).

So I'm able to do very fast selects on these tables: It needs only around 5 or 6 seeks to find the matching position where to read out the rows, further sorting is unnecessary since distance is the second key part of my index and therefore all rows are already sorted. Compare this to reading out and sorting 20 000 rows on every query!

I'f I'm right index size should be around 50 - 100 MB, database size also a few hundred MB, so it's possible to put all that stuff in ram.

I didn't try this yet nor did I do serious calculations, but I'll post some benchmark results here soon.

Options: ReplyQuote


Subject
Views
Written By
Posted
28062
October 19, 2004 06:04AM
10841
October 19, 2004 07:55AM
9244
October 19, 2004 11:14AM
proposed solution:
10281
October 21, 2004 09:28AM
9170
October 19, 2004 06:59PM
7619
October 20, 2004 07:39AM
7635
October 21, 2004 09:10AM
8829
October 22, 2004 07:17AM
6769
October 23, 2004 02:48AM
6227
October 23, 2004 03:09AM
6322
October 23, 2004 03:12AM
6212
October 23, 2004 02:59PM
7991
October 24, 2004 12:34PM
5521
October 24, 2004 01:31PM
13121
October 21, 2005 10:21AM
5572
D C
January 28, 2006 05:24AM
5118
March 02, 2006 04:24PM
7213
October 09, 2007 09:28AM
5740
December 06, 2005 05:34AM
7011
December 06, 2005 06:36AM
5315
December 24, 2005 01:10PM
8832
December 26, 2005 03:49PM
5438
October 09, 2007 09:36AM
29337
December 13, 2007 04:10PM
6180
April 05, 2006 02:59PM
4704
May 02, 2006 03:22PM
5665
May 05, 2006 09:44AM
14509
June 25, 2006 09:32PM
5493
August 30, 2006 12:54PM
5978
July 14, 2007 01:09AM
7634
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.