Fuck you, postgres

galansinchance

enajenao
Yo nunca he mirado postgresql en mis proyectos, una vez lo instalé y cuando me di cuenta que todo lo que solía hacer de una forma en otros sistemas acá no funcionaba lo dejé tirado :yao
 
Upvote 0

Amenadiel

Ille qui nos omnes servabit
Fundador
OVERLORD
REPORTERO
Para efectos de apps con geometría, postgres tiene la extensión postgis.

Postgis habilita el uso de funciones OGC como preguntar si un punto está dentro de un polígono, la distancia entre dos puntos, la unión de dos polígonos, etc.

Mysql soporta un subconjunto del standard OGC, pero implementa las funciones en su propio motor (y andan muy pero muy lento). Postgis delega esas funciones a las librerías GDAL y GEOS en el sistema operativo y además implementa el índice de tipo GIST que es varios órdenes de magnitud más eficiente que un BTREE para geometrías.

Trabajando con tablas del orden de 200.000 registros, Mysql se pone como rio de manjar. En postgres tengo respuesta casi instantánea.

Sent from my SM-T311 using Tapatalk
 
Upvote 0

Amenadiel

Ille qui nos omnes servabit
Fundador
OVERLORD
REPORTERO
No creo que se ponga más rápido, pero mantiene la operatividad incluso con tablas groseramente grandes.

¿Cómo se logra esto? Me parece que postgres por defecto mantiene la representación física de una BBDD en varios archivos. Cuando particionas una tabla no ocurre un particionamiento físico en el sentido que lo usa MySQL porque cada tabla ya existe en muchos archivos lo quieras o no. En este ejemplo, se usan archivos de 1GB.

Código:
-rw-------  1 postgres sql 1007M Dec  4 11:21 15426228.5
-rw-------  1 postgres sql  1.0G Dec  4 11:19 15426228.4
-rw-------  1 postgres sql  1.0G Dec  4 11:19 15426228.3
-rw-------  1 postgres sql  1.0G Dec  4 11:18 15426228.2
-rw-------  1 postgres sql  1.0G Dec  4 11:17 15426228.1

Cada vez que la tabla cuyo oid se corresponde al nodo 15426228 va a sobrepasar el tamaño, se crea otro archivo con el mismo nodo y distinto "apellido". Este tamaño es tuneable.


MySQL recién ahora está defaulteando el setting para que en InnoDB almacene cada tabla en un archivo distinto (antes se iba todo a IBDATA) pero no hay un particionamiento inherente de esos archivos. Una tabla INNODB de 8GB igual llega a un archivo de 8GB.CODE
 
Última modificación:
Upvote 0

nibal2

pajarón nuevo
MOD
A mi me pasa lo contrario.

Llevo 5 años usando PostreSQL en la pega, y me da una paja enorme cuando uso MySQL para proyectos web, porque hay varias funciones que echo de menos.

Y uso PostgreSQL por su lado geoespacial, es una delicia con todas las funciones que tiene


PD: Un gusto leer de nuevo al tio avenamiel :amocapa9
 
Upvote 0

Miguelwill

I am online
Miembro del Equipo
MOD
Me gustaría aprender a usar postgres más a fondo, pero como ya no estoy programando, es poco en lo que lo podría aprovechar por ahora

Enviado desde mi Moto [XXX] con KK
 
Upvote 0
Subir