:: FILOWEB.it: Mysql o Sql Server?

Filoweb.it

Mysql o Sql Server?

FB TW G+ whatsapp RSS FEED
14/5/2018

Mysql o Sql Server?

Un database è un file che memorizza un insieme di dati. Vi sono nel mondo dell’informatica vari tipi di database ma i più usati sono di tipo “relazionale”, un particolare tipo di database in cui i diversi file separati vengono messi in relazione attraverso dei campi chiave e che per questo motivo vengono chiamati così.
 Nel mondo del web sono due i database più usati dei providers: MySql e SQLServer ed anche in questo settore il mondo degli sviluppatori è diviso tra diverse idee su quale sia il migliore.
Come nell’articolo precedente (Php o Net? Facciamo Chiarezza) vediamo di fare chiarezza tralasciando quelli che sono gli aspetti ideologici nell’affrontare la discussione e concentrandoci invece sugli aspetti pratici ed oggettivi.

Iniziamo subito col dire che SQL Server è leggermente più vecchio di MySQL: Microsoft SQL Server è stato introdotto nel 1989 mentre MySQL è stato introdotto nel 1995 come progetto open-source. Dal momento che entrambi sono in produzione da anni, entrambi hanno una solida posizione sul mercato, entrambi possono girare sia su piattaforme windows che Linux ( Si, avete letto bene Sql Server gira anche su linux: Link per le istruzioni), entrambe le piattaforme sono progettate per gestire progetti grandi e piccoli ad elevate prestazioni, ed hanno molti punti in comune che sono:

Scalabilità: entrambe le piattaforme consentono di scalare man mano che il progetto cresce. È possibile utilizzare entrambi per progetti di piccole dimensioni, tuttavia, se questi progetti crescono, sia Mysql che Sql Server offrono la possibilità di supportare milioni di transazioni al giorno.
Tabelle: entrambe le piattaforme utilizzano il modello di tabella del database relazionale standard per archiviare i dati in righe e colonne.
Chiavi: entrambe le piattaforme utilizzano chiavi primarie e esterne per stabilire relazioni tra tabelle.
Sintassi: la sintassi tra le due piattaforme di database è simile, sebbene vi siano alcune differenze minori tra le diverse istruzioni
Popolarità: entrambe le soluzioni sono molto popolari sul web.

Mentre le due piattaforme sono simili nell'interfaccia e nello standard di base dei database relazionali, sono due programmi molto diversi e che operano in modo diverso. La maggior parte delle differenze riguarda il modo in cui il lavoro viene svolto in background e non risulta visibile all’utente medio.

Natività: abbiamo detto che entrambe le soluzioni possono essere installate sia su piattaforme windows che linux, va però considerato che Mysql funziona meglio sotto linux se usato con Php, mentre Sql Server da il suo massimo su piattaforma Windows interfacciato con .Net.
Costo: Sql Server è generalmente costoso poiché necessita di licenze per il server che esegue il software, mentre MySQL è gratuito e open-source, ma si dovrà pagare per il supporto se se ne necessita e non si è in grado di risolvere il problema da soli.
Query Cancellation: una differenza importante tra MySQL e Sql Server è che MySQL non permette di cancellare una query a metà della sua esecuzione. Ciò significa che una volta che un comando inizia l'esecuzione su MySql, è meglio sperare che qualsiasi danno che potrebbe fare sia reversibile. SQL Server, invece, permette di annullare l'esecuzione della query a metà strada nel processo. 
Sicurezza: sebbene entrambi sono conformi all'EC2 Microsoft ha dotato Sql Server di funzionalità di sicurezza proprietarie all'avanguardia come  Microsoft Baseline Security Analyzer che  garantisce una solida sicurezza per SQL Server. Quindi, se la sicurezza è una delle maggiori priorità l’ago della bilancia pende decisamente verso Sql Server.
Supporto comunitario: su questo piano direi decisamente che Mysql (che è più usato al momento) essendo open source ha a disposizione una grande e varia comunità di utenti molto attivi.
Velocià: sebbene molti (soprattutto per motivi ideologici) affermino che Mysql sia più veloce dai benchmark si evince che Sql Server è nettamente più veloce di Mysql ( www.ijarcce.com/~IJARCCE%2039.pdf, www.dbgroup.unimo.it/~/tesi.pdf)
Api e altri metodi di accesso ai dati: In questo caso vediamo che Sql Server ha a disposizione più metodi di accesso da scegliere tra OLE DB, TDS (Tabular Data Stream), ADO.NET, JDBC, ODBC, mentre MySql si deve limitare a ADO.NET, JDBC, ODBC 
Linguaggi di programmazione supportati: in questo campo decisamente Mysql è avvantaggiato (18 linguaggi supportati), mentre Sql Server affianca al classico .net, Runy, Phyton, Php Go, Dephy, C++, R e Java script (tramite Node.js).
Viste indicizzate: MYSQL offre solo viste aggiornabili, Sql Server,invece, offre anche le viste indicizzate che sono molto più potenti e con un rendimento migliore (per chi volesse sapere cosa sono le viste indicizzate rimando al tecnet di microsoft).
Funzioni personalizzate: Sql Server permette all’utente di definire le proprie funzioni, mentre in Mysql questa possibilità non è presente.

Dopo aver analizzato da un punto di vista tecnico le differenze tra i due vorrei chiudere la comparazione tra i due correggendo alcune affermazioni che ho trovato su internet che dicono che Google, Facebook, Youtube ed i principali siti web usano Mysql. In realtà Google e Youtube usano BigTable, un database sviluppato in proprio, Facebook usa due diversi database Hive e Cassandra, MySpace usa Sql Server, Twitter usa MySQL, FlockDB, Memcached (in una versione sviluppata in proprio chiamata Twemcache), mentre altri siti web che usano  Mysql tendono sempre di più ad affiancarlo o a migrare ad altri database come ad esempio MariaDB, un fork di Mysql creato dal programmatore originale dello stesso, che supera alcune delle limitazioni del database originale.

Concludendo diciamo nuovamente che non si tratta di quale tra MySQL o Sql Server sia migliore, ma quale tra i due è il più adatto per il nostro progetto, quale si adatta meglio al server che lo ospiterà, che livello di sicurezza e performance voglio in rapporto al budget che ho a disposizione, ma soprattutto quale è lo sviluppo futuro che prevedo, ricordando che ogni buon progetto inizia con una buona pianificazione iniziale: il passaggio da un database ad un altro non sempre è indolore ed il costo può risultare elevato.

Commenta questo articolo...

Potrebbe interessarti...

Php o .Net? Facciamo Chiarezza

Accettare le regole del gioco

Qualcosa non ha funzionato

Trend webdesign 2018

Adesso niente panico

da HTTP a HTTPS

Più Pokemon Go e meno Office?

Hanno vinto ancora...

FB TW G+ whatsapp RSS FEED

filoweb.it è il sito personale di Filippo Brunelli
(c) 2017 Filippo Brunelli
Le immagini ed i testi contenuti nel sito sono di proprietà di Filippo Brunelli salvo diversamente indicato.
L'uso delle immagini e del testo è gratuito per uso personale ed è subbordinato alla citazione della fonte.
Brunelli Filippo declina ogni responsabilità per l'uso che viene fatto delle informazioni presenti nel sito.
FILOWEB.it Piccolo Web Magazine amatoriale per esprimere idee su vari argomenti di informatica, tablet, Windows Phone, Amiga computer, Shodan, Facebook e social network, Bufale online, Chatbot, video verticali, polarizzazioine del web e molti altri argomenti interessanti.