Allora andiamo per gradi,
Mysql ora si è evoluto alla versione 5 e supporta alcune funzionalità che prima sicuramente non lo facevano preferire ad Oracle per sviluppi di applicazioni di buon livello.
Parlo dell' introduzione di stored procedures, viste , cursori, transazioni, trigger.
Per quanto riguarda la sintassi...l'SQL è quasi identico tra i due dbms.
Potresti fare un'analisi delle limitazioni che introducono i due database, ovvero la dimensione massima di un tipo di colonna...ma entrambi ormai hanno dimensioni notevoli e non credo tu voglia sviluppare un applicazione che debba conquistare il mondo.
Per quanto concerne l'installazione...sicuramente quella di MySql è molto più semplice di quella di Oracle che sinceramente parlando è un pò pesantuccia !!
Per fare uso delle transazioni con MySql devi utilizzare l'Engine InnoDB.
Per quanto riguarda le Stored Procedures ci sono molte differenze sintattiche tra i due db.
MySql non ha tutte le strutture dati che Oracle offre, viceversa mi sembra che MySql abbia più tipi di tabelle.
In MySql non c'è la tabella DUAL.
A quel che sono rimasto io con Oracle non era possibile utilizzare l'AutoIncrement come con MySql, ma bisognava aggirare con un workaround ( una sequence ) per permettere la stessa funzionalità.
Con Oracle hai a disposizione PL/SQL.
Le viste sono supportate allo stesso modo, supportati da entrambi tutti i tipi di JOIN,.
Il campo NULL viene trattato in modo differente.
Nelle query con LIMIT MySql non supporta rownumber che a quanto mi sembra di conoscere sarebbe lo standard ; Oracle utilizza rownumber.
Ad Esempio per MySql
Codice PHP:
SELECT colonne
FROM tabella
ORDER BY nomecolonna ORDINE
LIMIT n
Per Oracle
Codice PHP:
SELECT * FROM (
SELECT
ROW_NUMBER() OVER (ORDER BY nomecolonna ORDINE) AS rownumber,
colonne
FROM tabella
)
WHERE rownumber <= n
C'è da aggiungere che Oracle ha acquistato mi sembra ad Ottobre 2005 l'engine InnoDB con critiche dal mondo open-source ; MySql sembra avere stabilito una sorta di partnership con le SolidDB.
MySql sicuramente penso sia stato il database dell'anno, diciamo che le mosse commerciali di Oracle fanno pensare che voglia cercare comunque di tagliare un pò i piedi a MySql...e per questo c'è una sola risposta...diciamo che sicuramente MySql con le ultime versioni sta facendo passi da gigante non dando nulla ad invidiare ad Oracle.
Un plauso va ad Oracle sia per meriti tecnici, che per abilità del personale marketing, ma come accennato da Daniele anche perchè Oracle è onnipresente nelle impostazioni commerciali ; MySql prevede differenti tipi di licenze a differenza di Oracle.
Come prestazioni...bhe pensa che www.evite.com (un portale con 6 milioni di utenti) i MySql ha sostituito Oracle dopo un confronto sulle prestazioni ; in generale i pareri sono molto discordanti.
Il mio personale è che la nuova versione di MySql non ha niente da invidiare ad Oracle e che dovendo effettuare una scelta devi porre su due piatti della bilancia la pesantezza di Oracle e la leggerezza di MySql, la maggiore difficoltà di Oracle e la maggiore facilità di MySql, la maggiore sicurezza e affidabilità su ingenti quantità di dati di Oracle, la sintassi più scocciante di Oracle, la facilità dell'utilizzo di PL/SQL in Oracle.
Un link per un confronto tra i due a questo http://phplens.com/phpeverywhere/node/view/23 link.