Domanda

Al momento, MySQL Community Edition Server 5.5.16 è sotto licenza GPL. Ciò significa che potrebbe essere utilizzato in progetti che sono progetti open source troppo. Il nostro budget del progetto è molto stretto e abbiamo bisogno di trovare una soluzione alla versione gratuita l'uso di MySQL nel progetto commerciale. Ho molte domande:

1) Cosa precedente versione di MySQL sarebbe abbastanza solido e privo di bug per l'utilizzo in progetti commerciali?

2) Informazioni sull'uso attuale comunità di MySQL Server Edition 5.5.16 con GPL: se un progetto di architettura software è stato progettato con il supporto per collegare molti DBMS, allora è legale per avere un software di progetto in non-licenza GPL? Voglio dire, suppongo che il software è stato progettato con più DBMS supportano e il software viene messo sotto licenza commerciale. Se le sceglie client di utilizzare la versione di MySQL GPL egli viola licenza GPL?

3) I sentito alcune risposte negative su PostgreSQL essendo buggy e non ottimizzato per modificare e memorizzare grandi quantità di dati. L'unico motivo che è ancora usato in alcuni piccoli progetti commerciali è perché è gratis. Quali sono le vostre opinioni su questo?

UPDATE: anche, stiamo progettando di utilizzare diversi server, così è necessaria anche la replicazione master-slave.

UPDATE2: Ho sentito parlare di un caso: non è stato utilizzato ~ 1 GB PostgreSQL DB. Il database è stato molto utilizzato con gli aggiornamenti modificando quasi tutti i dati. Il problema era il database è stato in costante crescita su dieci volte ogni 2,5 mesi. Hanno usato PostgreSQL 8.3 + CentOS. Inoltre, autovacuum è stato utilizzato. Dopo database di dumping, distruggendo il vecchio, ricreando database e importazione sono stati in grado di ridurre le sue dimensioni ~ 10 volte. posti esistenti ( qui e qui ) mostrano che questo problema è relativo, anche in ultima PostgreSQL 9 versione. Io non lo definirei un comportamento normale e tale crescita dimensionale non è accettabile nel nostro caso.

Update3: Grazie a tutti per le risposte. Tutte le risposte sono relative e utili per la questione.

È stato utile?

Soluzione

gli altri utenti hanno già detto che, in fondo il collegamento a MySQL significa che hai concesso in licenza il progetto GPL o qualche altra licenza OS Oracle / MySQL fa un'eccezione per, o è commerciale e devi loro denaro. Comunque ...

OK, PostgreSQL memorizza i propri dati in un archivio dati che supporta MVCC, controllo della concorrenza multi-versione. Questo significa che in un livello semplice che ogni transazione ottiene uno snapshot del database che è coerente, dal momento che inizia la transazione fino a quando non commit o il rollback. Questo significa che in un dato momento un singolo tupla può avere più di una versione live nel database. A causa del modo MVCC è implementato in pgSQL, queste due versioni esistono allo stesso tempo nell'archivio dati. Alla fine tutti, ma quelli più recenti saranno più vecchio di più vecchia transazione in esecuzione, e possono essere recuperati e riutilizzati dal db. Il processo che recupera questi vecchi tuple morte è chiamato aspirazione.

8.3 i vecchi blocchi morti sono stati tenuti traccia di un segmento di memoria condivisa denominata lo spazio mappa gratuita. Se entrambi i vuoti non sono abbastanza aggressivi o se si esaurisce lo spazio nella mappa spazio libero quindi il database potrebbe fare tuple morte più velocemente di quanto loro (vuoto) potrebbe recuperare o (spazio libero mappa) ricordare.

Con 8.4 lo spazio mappa gratuita diventa esente da manutenzione per l'utente perché è memorizzato sul disco rigido in file .fsm. tuttavia il problema con il vuoto esiste ancora. autovacuum è sintonizzato a non essere troppo aggressivo in modo da non uccidere qualcosa come un computer portatile o di un piccolo server una volta installato. Sulle macchine più grandi con un sacco di funzionalità IO come un server con 16 SSD in un array RAID-10, è possibile alzare l'aggressività del autovacuum e può tenere il passo con alcune tariffe TPS abbastanza pazzo. È possibile ottenere sostenuta 1.000 a 3.000 transazioni al secondo per lunghi periodi su un server con un autovacuum abbastanza aggressiva e un controller RAID hardware veloce con un sacco di dischi. numeri TPS si avvicinano 10.000 sono possibili con i server più costosi e più grandi. Il tutto mentre la manutenzione 100s di connessioni.

tl; dr: 8.3 è vecchio, e DEF avuto alcuni problemi. 8.4 e fino hanno il recupero di spazio libero ma meglio ancora bisogno autovac aggressivo per tenere il passo con un carico pesante.

Altri suggerimenti

3) Ho sentito molte risposte negative su PostgreSQL essendo buggy e non ottimizzato per modificare e memorizzare grandi quantità di dati. L'unico motivo che è ancora usato in alcuni piccoli progetti commerciali è perché è gratis. Quali sono le vostre opinioni su questo?

Questa è FUD. PostgreSQL è completamente caratterizzata, RDBMS ad alte prestazioni utilizzato in diverse implementazioni su larga scala.

2) Informazioni sull'uso attuale comunità di MySQL Server Edition 5.5.16 con GPL: se un progetto di architettura software è stato progettato con il supporto per collegare molti DBMS, allora è legale per avere un software di progetto in non-licenza GPL? Voglio dire, suppongo che il software è stato progettato con più DBMS supportano e il software viene messo sotto licenza commerciale. Se le sceglie client di utilizzare la versione di MySQL GPL egli viola licenza GPL?

Non appena si collega con una libreria con licenza GPL, l'intero corpo di codice è rilasciato sotto la licenza GPL. Oracle fa un eccezione solo per altre licenze libere.

3) Ho sentito molte risposte negative su PostgreSQL essere buggy e non ottimizzato per modificare e memorizzare grandi quantità di dati. Il solo motivo è ancora usato in alcuni piccoli progetti commerciali è perché è gratis. Quali sono le vostre opinioni su questo?

ROFL

Non scherziamo! FUD puro e nient'altro.

Abbiamo un paio di TB di dati in un database PostgreSQL ed è ancora in crescita circa 200 GB al mese. Niente insetti, nessun problema, solo grandi prestazioni. Anche a 500 utenti simultanei, senza problemi a tutti. Controllare la mailing list per contare i bug e vedere quanto velocemente questi sono risolti. Non siate sorpresi quando v'è una correzione entro poche ore. MySQL può imparare da questo.

http://archives.postgresql.org/pgsql-bugs/

Ho avuto lo stesso problema. In precedenza ho usato mysql in progetti commerciali. Ma dopo l'oracolo ha assunto e cambiamenti politici licenza, ho cercato altre opzioni, tra cui SQL-Express, DB2 Express, SQL-lite, PostgreSQL

I wont entrare nei confronti, perché non v'è grande quantità di informazioni in giro. Ma PostgreSQL è di gran lunga il migliore rispetto a

a) trattamento grandi serie di dati

b) standard SQL

c) Inline documentazione

d) statistiche di utilizzo di database

infatti, ho potuto iniziare un progetto durante la notte, senza spese generali relative alle variazioni delle comandi SQL o la documentazione.

Tuttavia, dal momento che sto usando dotnet su Windows, Npgsql è l'unica in tutto il connettore di fiducia che ci spaventa.

Ma finora in via di sviluppo con PostgreSQL 9.0 è stata assolutamente una torta.

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