2012-07-21 18 views
6

Per un progetto in cui la maggior parte delle query nel database includerà requisiti come "all'interno di un poligono", ho pensato di scegliere PostgreSQL con PostGIS anziché MySQL, che in precedenza ho utilizzato principalmente. Soprattutto perché PostgreSQL ha più funzioni GIS. Tuttavia, sono incerto su come valutare questo, e anche non posso davvero vedere la differenza dal punto di vista degli sviluppatori PHP.Differenze tra PostgreSQL e MySQL per gli sviluppatori PHP

  1. Il supporto di PostgreSQL è integrato altrettanto bene con PHP come MySQL?
  2. Sta scrivendo query PostgreSQL (SQL) molto simili a MySQL?
  3. Ci sono dei caveat da considerare quando si sceglie PostgreSQL invece di MySQL?
  4. PostgreSQL è la soluzione migliore per l'utilizzo dei dati GIS?

Spero che voi ragazzi potete aiutarmi a chiarire un po 'di questo.

+0

Sì per le prime due domande. –

risposta

15

Il supporto di PostgreSQL è integrato altrettanto bene con PHP come MySQL?

Sì. E forse anche meglio, più PHP functions disponibili per rendere le cose molto semplici.

La scrittura di query PostgreSQL (SQL) è molto simile a MySQL?

Sì, è SQL. Ma hai a disposizione funzionalità più avanzate, come Oracle e SQL Server.

Ci sono dei caveat da considerare quando si sceglie PostgreSQL invece di MySQL?

PostgreSQL non è ancora diffuso su provider di hosting economici. Ma è disponibile.

PostgreSQL è la soluzione migliore quando si utilizzano i dati GIS?

MySQL è uno scherzo quando hai bisogno di query GIS e PostGIS (funzioni e tipi di dati in PostgreSQL) è uno dei migliori database GIS disponibili sul mercato.


Modifica: controllare questi due confronti:

PostGIS ha passato alla versione 2.0 e PostgreSQL alla versione 9.1, con 9.2 imminente.

MySQL ha solo alcune funzioni GIS e manca di prestazioni, non è un'opzione seria per GIS.

+1

Grazie mille per il tuo feedback! Potresti per favore chiarire "MySQL è uno scherzo quando hai bisogno di query GIS"? – preyz

+0

@preyz per GIS c'è una grande lista di funzionalità mancanti per MySQL. Non ha un motore di proiezione, solo [fa una bounding box piuttosto che un'analisi point-in-poligon] (http://stackoverflow.com/questions/1078386/see-if-lat-long-falls-within- a-polygon-using-mysql) (a meno che non si usi la versione più recente), ci sono meno strumenti GIS da collegare a MySQL, ecc. PostGIS è molto più maturo rispetto a GIS di qualsiasi altra cosa che MySQL Spatial ha da offrire. –

0

Da una prospettiva puramente PHP, se si utilizza PDO quindi - il costruttore a parte - il codice può essere praticamente indipendente dal database.

+1

Ma perdi tutti i vantaggi di un database specifico. Prestazioni e funzionalità ne risentiranno. –

+0

PDO fornisce solo la struttura per lavorare con la sintassi SQL principale e aiuta a sfuggire e aggiungere virgolette corrette alle espressioni. Non nega l'utilizzo di funzioni specifiche e non è uno scopo mantenere solo le opportunità SQL essenziali. Un progetto serio non può essere basato su SQL universale. Ma se sviluppi un prodotto open source (ad es. Estensione per un framework) devi evitare funzioni specifiche della piattaforma. Non c'è nessun problema in entrambi gli approcci. A proposito, ho fatto diverse migrazioni reali tra MySQL, Postgres, SQL Server. Va bene in alcune fasi iniziali. –

Problemi correlati