Domanda

Sto lavorando su un'applicazione web utilizzando il linguaggio Python (Django) e vorrei sapere se MySQL o PostgreSQL sarebbe più adatto quando la distribuzione per la produzione.

In una podcast Joel ha detto che ha avuto qualche problema con MySQL e i dati non sono coerenti.

Vorrei sapere se qualcuno ha avuto tali problemi.Anche quando si tratta di prestazioni che può essere facilmente modificato?

È stato utile?

Soluzione

Una nota per i lettori futuri: Il testo riportato di seguito è stato ultima modifica nell'agosto del 2008.Quasi 5 anni fa di questa modifica.Il Software può cambiare rapidamente da versione a versione, quindi, prima di andare la scelta di un DBMS basato su i consigli di seguito, fare qualche ricerca per vedere se è ancora preciso.


Meglio?

MySQL è molto più comunemente fornito da web host.

PostgreSQL è un prodotto maturo.

C'è questa discussione affrontando il "meglio" domanda

A quanto pare, secondo questa pagina web, MySQL è veloce quando in concomitanza di bassi livelli di accesso, e quando ci sono molte più letture scritture.D'altra parte, mostra scarsa scalabilità con l'aumentare del carico e di lettura/scrittura di rapporti.PostgreSQL è relativamente lento a bassi livelli di concorrenza, ma scala bene con l'aumento di livelli di carico, fornendo un isolamento tra accessi per evitare rallentamenti in alto, scrivere e leggere i rapporti.Si procede per il collegamento ad un certo numero di prestazioni confronti, perché queste cose sono molto...sensibile alle condizioni.

Quindi, se il vostro fattore di scelta è, "che è più veloce?"Allora la risposta è "dipende. Se è davvero importante, di verificare l'applicazione nei confronti di entrambe."E se davvero, davvero cura, si ottiene in due amministratori di database (uno che si specializza in ogni database) e di ottenere loro di ottimizzare il crap fuori di database e quindi scegliere.È sorprendente quanto costoso buona Amministratori di database sono;e sono vale ogni centesimo.

Quando conta.

Che probabilmente non, quindi basta scegliere qualsiasi database vi piace il suono e andare con esso;migliori prestazioni possono essere acquistati con più RAM e CPU, e una più corretta progettazione di database e intelligente stored procedure trucchi e così via - e tutto questo è più facile ed economico per casuale-sito web-X di agonizzare su quale scegliere, MySQL o PostgreSQL, e specialista di ottimizzazione costosi amministratori di database.


Joel ha anche detto nel podcast che commento potrebbe tornare a mordere lui, perché la gente avrebbe detto che MySQL è stato un pezzo di merda - Joel non poteva ottenere un count di righe indietro.Il plurale di aneddoto non è dati. Ha detto:

MySQL è il database solo che io abbia mai programmato contro nella mia carriera che ha avuto problemi di integrità dei dati, dove si fa la query e ottenere risposte senza senso, che non sono corretti.

e disse anche:

E ' solo un aneddoto.E ' una delle cose che mi frustra, in realtà, di blog o solo in Internet in generale.[...] C'è una strana tendenza a fare aneddoti in verità e io in realtà come un blogger sto iniziando a sentire un po ' in colpa per questo

Altri suggerimenti

Alcuni dicono che MySQL è semplice e veloce.

Fast - Beh, se si utilizza l'impostazione motore MyIsam, è veloce.Ha quasi zero gravi funzionalità di database, ma è veloce.Se fossi sarcastico, direi che un grep su un file flat è troppo veloce.Abbastanza divertenti, non è molto lontano da come MyIsam memorizza i dati.Quindi non aspettatevi di database relazionale funzione.Nemmeno di riferimento vincoli di integrità.

Semplice, Ora diciamo che si vuole un bel sottoinsieme di reale funzionalità del database.Alcune cose, come i vincoli di integrità, trigger, di isolamento delle transazioni, indici funzionali forse?Così, ovviamente, dovrete lasciare che il motore MyIsam di distanza e scegliere uno dei principali 3 altri motori di archiviazione.Che sono stati sviluppati da fornitori diversi, ciascuno con una particolare configurazione/comportamento.

Check out una panoramica dei motori di archiviazione, e se non si ottiene un mal di testa, mi sarete d'accordo con MySql è semplice, dal tuo punto di vista.

Da tali fatti, lascio a voi fare la vostra mente su quelli che dicono che MySql è semplice e veloce.

Se si desidera scala più, risparmiare tempo, hanno meno strano bug per la caccia, hanno più di una semplice applicazione del codice, di trascorrere più tempo a ottimizzare il vostro business, non si lotta con il database, quindi la soluzione open source di scelta è Postgresql.

Non ho usato Django, ma ho usato sia MySQL e PostgreSQL.Se si utilizza il database solo come back-end per Django, non importa molto, perché astrae la maggior parte delle differenze.PostgreSQL è un po ' più scalabile (che non ha colpito il muro di mattoni veloce come MySQL come dati di dimensione / numero di client aumenta).

La vera differenza sta nel se si sta facendo un nuovo sistema.Poi ho'ld consiglia di PostgreSQL giù le mani, perché ha un sacco di funzioni per rendere il vostro DB livello molto più personalizzabile, in modo che è possibile mettere a punto per qualsiasi esigenza.

Basta interpretare molti mesi dopo.

Geografica capacità dei due database sono molto, molto diversi.PostgreSQL è l'eccezionale estensione PostGIS.MySQL geografica funzionalità è praticamente pari a zero in confronto.

Se il web service è un componente di indirizzo, scegliere PostgreSQL.

Anche se è un po ' fuori di data, sarebbe la pena di leggere il MySQL Trucchi pagina.Molti degli elementi elencati ci sono ancora vero, al meglio della mia conoscenza.

Io uso PostgreSQL.

Io uso sia ampiamente.La mia scelta per un progetto particolare, si riduce a:

  • Licenze - hai intenzione di distribuire la tua applicazione (IANAL)
  • Infrastrutture esistenti e Knowledge Base riportato di seguito
  • Qualsiasi salsa speciale devi avere.

Da salsa speciale Ho cose come:

  • easy/a buon mercato replica = MySQL
  • Enormi set di dati problemi con i piccoli risultati = PostgreSQL.Utilizzare le estensioni del linguaggio, e sono molto efficienti le operazioni sui dati.(PL/Python, PL/TCL, PL/Perl, ecc)
  • Interfaccia con R Statistica Librerie = PostgreSQL PL/R disponibile in debian/ubuntu

Beh, non credo che si dovrebbe essere utilizzando un database diverso marchio nel nulla del passato di sviluppo (build, la messa in scena, prod) che, come tornare a mordere voi.

Da come ho capito PostgreSQL è un di più 'corretto' implementazione del database, mentre mySQl è meno corretto (meno conforme), ma più veloce.

Quindi, se si sono praticamente la scrittura di un CRUD applicazione mySQL è il modo per andare.Se avete bisogno di alcune funzionalità di database (se non siete sicuri di allora non c'è) allora si potrebbe desiderare di guardare in postgreSQL.

Se si sta scrivendo un'applicazione che possono essere distribuiti un po ' su diversi server, MySQL porta un sacco di peso, su PostgreSQL a causa della portabilità.PostgreSQL è difficile da trovare a meno che soddisfacente web host, albet ci sono alcuni.Nella maggior parte riguarda, PostgreSQL è più lento rispetto a MySQL, soprattutto quando si tratta per la messa a punto alla fine.Tutto in tutti, io direi di dare PostgreSQL un colpo per un breve lasso di tempo, in questo modo non evitare completamente, e poi dare un giudizio.

Grazie.Ho usato Django con MySQL e va bene.Scegli il tuo database sulle caratteristiche di cui avete bisogno.Difficile il confronto MySQL e Postgres.Meglio confrontare Postgress a SQl Server.

@WolfmanDragon

PostgreSQL ha una (piccola) di supporto per gli oggetti, ma essa è, per natura, un database relazionale.Dalla sua sulla pagina:

PostgreSQL è un programma open source relazionali sistema di database.

MySQL è un relational database management system mentre PostgreSQL è un oggetto-relational database management system.PostgreSQL è adatto pure per il C++ o Java sviluppatori, in quanto ci dà più controllo su come le query vengono scritti.ORDBMS ci dà anche Oggetti e Tipi Definiti dall'Utente.La query SQL stessi sono molto più vicini alle norme ISO, rispetto a MySQL.
Avete bisogno di un ORDBMS o un RDBMS?Che possa meglio rispondere alle tue domande.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top