PostgreSQL tiene al menos una década siendo ampliamente superior a MySQL
en todo, y en particular en el manejo de información geométrica y
geográfica. No solamente cuenta con tipos de datos *nativos* [1] y
funciones para manipularlos [2], sino que además cuenta con métodos de
índice que fueron diseñados precisamente para permitir el ordenamiento
eficiente de los mismos. Eso sin contar que existe una extensión [3]
específica para gestión de información geográfica que seguramente ya
tiene resuelto todo lo que en esa aplicación reinventaron, y el resto de
las cosas que todavía no han enfrentado y que eventualmente tendrían que
enfrentar.
Escribir funciones de cálculo numérico *no* es un ejercicio simple, y
mucho menos recomendable en un lenguaje tan lento y con poca precisión
como PHP. Si quieres mejorar tus oportunidades de escalabilidad, deja
PHP para lo que más o menos sirve como gestor de plantillas, y deja que
el manejo de datos complejos los haga una base de datos pensada desde el
principio para manejar datos multidimensionales.
[1] http://www.postgresql.org/docs/9.1/static/datatype-geometric.html
[2] http://www.postgresql.org/docs/9.1/static/functions-geometry.html
(aunque cualquier versión desde 7.0 en adelante las tiene)
[3] http://postgis.refractions.net/
--
Ernesto Hernández-Novich - @iamemhn - Unix: Live free or die!
Geek by nature, Linux by choice, Debian of course.
If you can't aptitude it, it isn't useful or doesn't exist.
GPG Key Fingerprint = 438C 49A2 A8C7 E7D7 1500 C507 96D6 A3D6 2F4C 85E3
Esta extensiones son precarias.
Para comenzar, los tipos de datos provistos representan un subconjunto
muy pequeño de todas las operaciones geométricas y geográficas que uno
quisiera hacer, y se termina escribiendo el resto en la aplicación. Mala
idea en ambos extremos.
Por otro lado, sólo proveen soporte a índices basados en R-Trees
cuadráticos [1], mientras que PostgreSQL provee índices GiST que son un
superconjunto de los R-Trees, con desempeño igual o superior. Se podría
argumentar que los R-Trees son suficientes para el pequeño conjunto de
cosas que MySQL provee y "para qué quiero más", pero es importante notar
que los índices espaciales de MySQL sólo funcionan en modo MyISAM (o
sea, no transaccional) reduciendo *automáticamente* la escalabilidad del
conjunto de datos con el cual podrás trabajar si pretendes alta
concurrencia.
MySQL no está en la misma liga que PostgreSQL, y en el caso de
almacenar, procesar y ordenar información geométrica/geográfica, hay un
abismo notable.
[1] Valga comentar que es sabido que los R*-trees (como los que *usaba*
PostgreSQL) son superiores a los R-trees cuadráticos de Guttman.
--
Ernesto Hernández-Novich - @iamemhn - Unix: Live free or die!
Geek by nature, Linux by choice, Debian of course.
If you can't aptitude it, it isn't useful or doesn't exist.
GPG Key Fingerprint = 438C 49A2 A8C7 E7D7 1500 C507 96D6 A3D6 2F4C 85E3
_______________________________________________