MySQL o SQL Server? 6 differenze su cui riflettere

Due delle più popolari piattaforme per la gestione dei database sono MySQL e SQL Server, che, fondamentalmente, sono simili fra loro nei processi di memorizzazione e recupero dati, perché entrambi basati sul linguaggio e logica SQL.MySQL o SQL Server? 6 differenze su cui riflettere

Queste soluzioni sono così diffuse, che anche qui alla centrale di Hosting Solutions si è deciso di corredare tutte le offerte hosting con entrambe le tipologie di piattaforme.

In realtà, al di là dei meri costi di licenza, MySQL e SQL Server presentano delle differenze di non poco conto, su cui devi riflettere in modo attento prima di decidere a quale dei due sistemi vuoi affidare i dati del tuo progetto.

Ecco qua un elenco di 6 differenze che potranno aiutarti a scegliere quale sia il migliore sistema di database per le tue esigenze.

MySQL e SQL Server, il principio è diverso!

La differenza fondamentale fra le due soluzioni è di principio: tecnologia open source a duello con tecnologia proprietaria. Per alcuni sviluppatori basta questa definizione per far pendere a favore di MySQL rispetto a SQL Server e non è solo una questione di mentalità o di abitudini lavorative, ma una vera e propria esigenza.

Con SQL Server si è costretti all’engine offerto da Microsoft, mentre con MySQL si può scegliere fra MyISAM, Heap, InnoDB e Berkeley DB. D’altra parte, vi sono anche delle differenze tecniche da valutare e chi decide per la soluzione open source sa che MySQL non supporta pienamente le chiavi esterne, a differenza del concorrente SQL Server.

MySQL non è sempre gratuito, ma è economico rispetto a SQL Server

L’unico modo di avere una licenza gratuita da sviluppatore di SQL Server è acquistare la licenza per Microsoft Office Developer o Microsoft Visual Studio. Se invece SQL Server viene usato in un prodotto commerciale, devi pagare una licenza che per la Standard Edition può arrivare a costare oltre 3000 dollari.

MySQL è un prodotto open source e gratuito per gli sviluppatori di progetti open source, per le scuole e per gli enti no-profit. Se invece lo usi in un prodotto commerciale closed source, allora devi acquistare una licenza commerciale che nella versione Standard può costare circa 2000 dollari.

Performance, MySQL batte SQL Server

In termini di performance, MySQL è il migliore perché ha un formato di tabelle che consente di avere database molto compatti su disco e una gestione dei cicli di CPU e di memoria davvero ottimale rispetto a SQL Server. MySQL può essere integrato e usato anche in ambienti Windows, ma offre le sue migliori performance su sistemi UNIX-like. Inoltre, MySQL garantisce performance superiori se utilizzato su processori che supportano le istruzioni a 64 bit.

La robustezza di SQL Server è anche la sua più grande debolezza in termini di performance, in quanto garantire molte delle caratteristiche offerte da SQL Server significa incorrere in maggiore complessità, in una maggiore necessità di spazio disco e memoria e, di conseguenza, in performance più scarse.

Replica, scalabilità e sicurezza: MySQL e SQL Server a pari merito

MySQL conserva un log binario di tutte le istruzioni SQL che apportano modifiche ai dati. La natura binaria di questo log, permette di usarlo per replicare i dati dal database master ai database slave in modo molto veloce. Così, anche se il server va in down, i record binari rimangono intatti e la replicazione dei dati può avvenire senza difficoltà.

Allo stesso modo, in SQL Server puoi tenere traccia delle istruzioni SQL, ma con un meccanismo più elaborato e un sistema di replicazione dati dinamico che permette di mantenere sincronizzati i vari server database.

Dal punto di vista della sicurezza, entrambi i prodotti hanno raggiunto standard molto elevati.

Recupero dati: SQL Server supera MySQL

L’ambito recovery è il più delicato per MySQL che richiede assolutamente l’uso di un UPS perché se dovesse andare in shut down il server in modo inaspettato, si potrebbe andare incontro a corruzione di dati o perdita degli stessi. SQL Server, per l’architettura su cui si basa, è molto più resistente alla corruzione dati.

SQL Server e MySQL, la scelta dipende dal progetto

Infine, la scelta fra una o l’altra tipologia di database dipende dal progetto. Se si ha in mente di sviluppare in .NET e in ambiente Windows, allora SQL Server è la scelta più corretta, ma se si usano CMS o si sviluppa in PHP su Linux, allora MySQL è l’opzione giusta.

  • Adry

    Ciao, sono d’accordo su tutto tranne che sulle performances.

    Probabilmente non hai mai avuto modo di lavorare con grosse quantità di dati o query complesse dove il piano di esecuzione fa la differenza (scelta degli indici corretti, utilizzo di funzioni avanzate come le indexed views… etc). Noi abbiamo provato con database > 20 GB.

    Pensa abbiamo 1 SQL Server che gestisce 150 GB di database complessi in contemporanea (200-300 utenti concorrenti) su una VM con 16 GB di RAM e 2 CPU. Ultimamente è leggermente sotto carico, ma… prova a fare lo stesso con MySQL… penso che ti fermi molto prima.

    Penso che solo ORACLE possa competere su questa scala, per cui tutto è relativo.

    Ciao,

    • donato

      SONO PIENAMENTE D’ACCORDO. Inoltre quando si deve optare per soluzioni professionali e robuste l’open source cade in difetto perché è debole la fase di aggiornamento di una tecnologia informatica di gestione dati. Si deve anche ribadire che se da un lato in MySQL si può scegliere fra MyISAM, Heap, InnoDB e Berkeley DB mentre in SQL SERVER si usa un data engine proprietario ecc. le performances si possono valutare utilizzando metriche fattoriali (ACP, Correlazione Canonica ecc) che hanno visto tutti i concorrenti di SQL SERVER raggruppati in cluster con valorizzazioni complessive minori. Infine considero la scelta di un DBMS svolta in un corridoio più ampio di alternative, non da meno quella relativa alla componente squisitamente del costo iniziale e del maintenance successivo.
      Buon lavoro
      ( a proposito uso sql server da oltre 20 anni, così pure DB2, ed Oracle….)