Domanda

Ho lavorato su vari sistemi come programmatore, alcuni con Oracle, altri con MySQL. Continuo a sentire la gente dire che Oracle è più stabile, più robusto e più sicuro. È questo il caso?

Se sì, in quali modi e perché?

Ai fini di questa domanda, prendere in considerazione un DB di produzione di dimensioni medio-piccole, forse circa 500.000 record.

È stato utile?

Soluzione

Sì. Oracle è un software di livello aziendale.

Non sono sicuro che sia davvero più stabile di mysql, non ho usato mysql così tanto, ma non ricordo di avere mai avuto mysql in crash. Ho avuto un crash oracle, ma quando lo fa, mi dà più informazioni sul motivo per cui è andato in crash di quanto potrei desiderare, e il supporto Oracle è sempre lì per aiutarti (a pagamento).

È molto robusto, Oracle DB farà praticamente tutto ciò che può prima di rompere i tuoi dati, ho avuto server mysql che fanno cose davvero strane quando esauriscono lo spazio su disco, Oracle interromperà tutte le transazioni e alla fine si spegnerà se non può scrivere i file di cui ha bisogno. Non ho mai perso i dati in Oracle, anche quando faccio cose stupide come dimenticare la clausola where e aggiornare ogni riga anziché una singola riga, è molto facile ripristinare il database com'era prima di rovinare.

Non sono sicuro della sicurezza, sicuramente Oracle ti offre molte opzioni su come collegarti al DB e autenticarti. Offre molte opzioni su quali utenti hanno accesso a cosa, ecc. Ma come per la maggior parte delle cose, se vuoi prendere sul serio la sicurezza, allora hai bisogno di un esperto per farlo. Oracle ha sicuramente molto altro da perdere se non ottiene la sicurezza giusta. Ma, come per tutte le cose, ci sono stati exploit.

Se non altro, considera questo ... Quando Oracle si riempie, hanno clienti che pagano $ 40k per CPU (se sono ventose e pagano il prezzo di listino) licenza + spese di manutenzione annuale .. Questo dà loro un fortemente intensivo per assicurarsi che i clienti siano soddisfatti del prodotto.

Per un piccolo database, consiglio vivamente Oracle XE ben prima di mysql. Ha le caratteristiche importanti di mysql (Free), è facile da installare, è dotato di una bella interfaccia web e framework applicativo (Application Express), se il tuo DB funzionerà felicemente su un singolo CPU, 1 GB di RAM e 4 GB di dati, quindi XE è la strada da percorrere per IMHO.

Mysql ha i suoi usi, molte persone hanno dimostrato che puoi costruire grandi cose con esso, ma è molto indietro oracolo (e SQL Server e DB2) in termini di funzionalità ... Ma poi, è anche gratuito e molto facile da imparare, che per molte persone è la caratteristica più importante.

Altri suggerimenti

Ho avuto Oracle creare un database corrotto quando il disco ha esaurito lo spazio. È difficile eseguire il debug, utilizza molte risorse ed è difficile lavorare senza che DBA seriamente qualificati ti tenga la mano. Oracle ha persino sostituito i file binari di sistema (ad esempio gcc) in / usr / bin / quando l'ho installato in un'occasione.

Lavorare con PostgreSQL, d'altra parte, è stato molto più piacevole. Fornisce messaggi di errore leggibili e agisce in modo più comprensibile se si è abituati a lavorare con sistemi * nix open source. È abbastanza facile impostare la replica, rendendo così i tuoi dati abbastanza sicuri.

Probabilmente sul tuo cellulare è possibile eseguire un database di record da 500K. Seriamente, è così piccolo che sia Oracle XE che MySQL saranno più che sufficienti per gestirlo.

  • per DB piccoli (pochi milioni di record), Oracle è eccessivo
  • è necessario un DBA esperto per installare e gestire correttamente un sistema Oracle
  • Oracle ha un "overhead di base" maggiore, ovvero è necessario un computer più robusto per eseguire Oracle
  • " out of the box " l'esperienza di Oracle era atroce (non ho installato un sistema Oracle da anni; non ho idea di come si comporti attualmente), mentre mysql è molto bello

Oracle è una bestia che ha davvero bisogno della conoscenza di DBA. Concordo con coloro che affermano che 500.000 dischi non sono nulla. Non vale la complessità di Oracle se si tratta di semplici dati numerici / di testo.

D'altra parte, Oracle è estremamente efficiente con i BLOB. Se ognuno dei tuoi record fosse un file binario da 100 MB, avrai bisogno di una fortuna per eseguirlo su Oracle (consiglierei un cluster RAC a 3 nodi con una buona SAN).

Ho un progetto che invia dati (~ 10 M righe, 1,2 GB di dati) a tre diversi database, 2 Oracle e 1 MySQL. Non ho avuto problemi a lavorare con nessuno dei due sistemi, né ho riscontrato grandi vantaggi su entrambi i lati. Se ti trovi in ??un posto che utilizza già Oracle per altri progetti, l'aggiunta di un nuovo database non dovrebbe essere un problema eccessivo, ma se stai pensando di configurare un nuovo server di database e non hai nulla in posto già, MySQL ti farà risparmiare i soldi.

Oracle Enterprise presuppone l'esistenza di un'Ente che la supporti, ovvero un vero DBA Oracle. Un DBA principiante (ma competente) dovrebbe essere in grado di proteggere MySQL molto più facilmente di Oracle, solo perché Oracle è intrinsecamente più complesso. Ovviamente, Oracle ha gli strumenti di monitoraggio Enterprise oltre a ciò che MySQL attualmente offre (per quanto ne ho visto), ma il DBA deve essere in grado di usarli per essere efficace.

Un database così piccolo come descritto potrebbe essere gestito da quasi tutto, quindi non vedo che Oracle sarebbe garantito a meno che l'infrastruttura non fosse già in atto. Entrambi hanno replica, transazioni e backup a caldo, quindi entrambi potrebbero funzionare bene.

La risposta dipende interamente dalla configurazione di ciascun DBMS. Entrambi sono in grado di gestire più di 500.000 registrazioni.

Oracle è molto più robusto. Molte delle sue funzionalità sarebbero ricercate solo in un'azienda più grande o in un ambiente ad alte prestazioni. Sono principalmente funzionalità legate al ridimensionamento, alla replica e al bilanciamento del carico.

Per DB di piccole dimensioni, considerare SQLite. Per medio-piccolo, guarda MySQL o PostgreSQL. Per i più grandi, guarda MSSQL, Oracle, DB2, ecc.

Modifica: dopo aver letto l'altra risposta, aggiungerò che se i tuoi dati sono davvero, davvero critici, vorrai una configurazione replicata e probabilmente vorrai guardare a uno dei i grandi fornitori di DB per qualcosa del genere.

Se puoi sacrificare potenziali perdite di dati ( estremamente rare ) e preferisci prestazioni migliori, guarda alcune delle opzioni più leggere.

È vero che Oracle è una bestia.

È anche vero che Oracle è ampiamente considerato il principale database più sicuro.

Il problema è che gli sviluppatori Oracle non sembrano comprendere i concetti di sicurezza critici. Oracle è il server di database meno sicuro sul mercato (secondo ricercatori indipendenti sulla sicurezza)

http://itic-corp.com/blog/2010/09/sql-server-most-secure-database-oracle-least-secure-database-since-2002/

MySQL è in realtà abbastanza sicuro secondo questi ricercatori. Non so molto sugli strumenti disponibili per questo. La cosa più divertente di questa ricerca è che le stesse persone che chiamerebbero Microsoft SQL Server un giocattolo avrebbero i loro dati rubati dagli aggressori che MSSQL avrebbe contrastato perché stanno usando una bestia che ha un terribile modello di sicurezza piuttosto che un "giocattolo"; è sicuro.

Sto usando Oracle / SQL Server / MySql per diverse applicazioni e siti

Nessun battito del database può Oracle in molte aree diverse, ma è il maggior numero di database che richiede una profonda conoscenza per l'amministrazione.

e se hai riscontrato un problema con Oracle, potresti impiegare alcune volte a risolverlo anche con bravi ragazzi DBA.

Puoi usare MySql per 500K o milioni di record, è più leggero di altri DB e richiede un lavoro di amministrazione pari a zero e non richiederà molte risorse del tuo computer, l'ho sempre nel mio PC di sviluppo e mai aveva affrontato seri problemi con esso.

Ti richiederei di utilizzare MySql o PostgreSQL se non hai bisogno delle funzioni avanzate di Oracle.

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