Има въпрос, който сравнява възможностите на различни пространствени бази данни, ГИС:PostGIS/PostgreSQL срещу MySql срещу SQL Server? , където Postgis излиза доста ясен победител над MySQL.
Независимо дали използвате MySQL или Postgis, ще бъде много по-добре, ако можете, да съхранявате стойностите си за географска ширина и дължина като геометрия/география (точка), като функциите, които могат да се използват за намиране на неща наблизо, ST_Distance , ST_Distance_Sphere и по-неясният <-> оператор , вижте Намерете n най-близките съседи за дадена точка с помощта на PostGIS? (например използване) работят директно върху геометрични/географски колони. Още по-важното е, че можете да добавите пространствен индекс , което тези функции трябва да работят правилно, което ще превъзхожда търсенето в отделно индексирани колони за географска ширина и дължина с голямо поле (това ще зависи от размера на таблицата, но ще нараства с нарастването на размера на таблицата),
В Postgis можете да конвертирате lat и lon в геометрия с:
alter table mytable add column geom (Geometry, 4326);
update mytable set geom = ST_SetSRID(ST_MakePoint(lon, lat), 4326)
create index ix_spatial_mytable_geom on mytable using gist(geom);
В този момент ще можете да извършвате много ефективни заявки, за да намерите точки близо до други точки, като използвате някой от примерите в горните връзки.
Можете да правите подобни неща в MySQL, въпреки че тя не поддържа пространствена референтна система, т.е. 4326 по-горе, което означава lat/lon, и му липсва функция ST_MakePoint, така че ще трябва да използвате STGeomFromText и да конкатенирате lat/ дълго заедно, за да направим ТОЧКА. Освен това прави всичко в равнинни координати, както Клаудио и други заявиха, което не е проблем с Postgis.
Извинявам се за дългия и донякъде тангенциален отговор, но след като направих различни миграции между бази данни на големи количества данни (MySQL, SQL Server и Postgres/GIS) и направих много грешки по пътя, надявам се да мога да ви насоча в правилната посока (и добавете малко бъдеща проверка, ако искате да започнете да използвате някаква друга пространствена функционалност, която Postigs има в пика).