MySQL: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Abisys.bot (discussione | contributi)
m top: ., replaced: LAMP (piattaforma) → LAMP
m Correggo dei wikilink.
 
(70 versioni intermedie di 38 utenti non mostrate)
Riga 1:
{{Software
|Nome = MySQL
|Logo =
|DimensioneLogo = 150px
|Screenshot = Screenshot-mysql-client-text-debian.png
|Didascalia = Client MySQL a riga di comando (in [[Debian]]).
|Sviluppatore = [[Oracle Corporation]]
|UltimaVersione =
Line 11 ⟶ 10:
|DataUltimaVersioneBeta =
|SistemaOperativo = Multipiattaforma
|Linguaggio = C
|Linguaggio2 = C++
|Genere = relational database management system
|Licenza = [[GNU General Public License|GNU GPL]] e [http://www-it.mysql.com/company/legal/licensing/commercial-license.html licenza commerciale]
Line 18 ⟶ 15:
|Lingua =
}}
'''MySQL''' o '''Oracle MySQL''' ([[Alfabeto fonetico internazionale|AFI]]: {{IPA|/maɪ ˌɛskjuːˈɛl/|en}} "My S-Q-L")<ref>
{{cita web|titolo=What is MySQL?|url=https://dev.mysql.com/doc/refman/5.7/en/what-is-mysql.html|editore=[[Oracle Corporation]]|citazione=The official way to pronounce “MySQL” is “My Ess Que Ell” (not “my sequel”), but we do not mind if you pronounce it as “my sequel” or in some other localized way.|accesso=22 giugno 2014|lingua=en}}</ref> è un ''[[relational database management system]]'' (RDBMS) composto da un [[client]] a [[Interfaccia a riga di comando|riga di comando]] e un [[server]]. Ambo i costituenti sono [[multipiattaforma]]<ref>{{Cita web|url = https://www.mysql.com/support/supportedplatforms/database.html|titolo = Supported Platforms: MySQL Database|accesso = 20 dicembre 2021|lingua = en}}</ref> e sono disponibili ufficialmente su tutte le [[Distribuzione (software)|distribuzioni]] conosciute, quali [[Debian]], [[Ubuntu]] e [[CentOS]]<ref>{{Cita web|url = https://packages.debian.org/stable/mariadb-server|titolo= MariaDB database server|accesso = 20 dicembre 2021|lingua = en}}
{{cita web
</ref>, sebbene lo abbiano sostanzialmente sostituito con [[MariaDB]] a partire dal [[2012]].<ref name="2012-mariadb-discussion-launchpad">{{Cita web|url = https://lists.launchpad.net/maria-discuss/msg00514.html|titolo = MySQL's future in Debian and Ubuntu|accesso = 20 dicembre 2021|lingua = en}}</ref>
|titolo=What is MySQL?
|url=http://dev.mysql.com/doc/refman/5.7/en/what-is-mysql.html
|editore=[[Oracle Corporation]]
|citazione=The official way to pronounce “MySQL” is “My Ess Que Ell” (not “my sequel”), but we do not mind if you pronounce it as “my sequel” or in some other localized way.
|accesso=22 giugno 2014
|lingua=en
}}</ref> è un [[Relational database management system]] (RDBMS) composto da un [[client]] a [[riga di comando]] e un [[server]]. Entrambi i software sono disponibili sia per sistemi [[Unix]] e [[Unix-like]] che per [[Microsoft Windows|Windows]]; le piattaforme principali di riferimento sono [[Linux]] e [[Oracle Solaris (sistema operativo)|Oracle Solaris]].
 
MySQL è unÈ [[software libero]] rilasciatopubblicato a doppia licenza, compresa la [[GNU General Public License]] ed è, sviluppato per essere il più possibile conforme agli standard ANSI [[Structured Query Language|SQL]] e ODBC SQL.<ref>
{{cita web|titolo=Commercial License for OEMs, ISVs and VARs|url=https://www.mysql.com/about/legal/licensing/oem/|editore=[[Oracle Corporation]]|citazione=Oracle provides its MySQL database server and MySQL Client Libraries under a dual license model designed to meet the development and distribution needs of both commercial distributors (such as OEMs, ISVs and VARs) and open source projects.|accesso=22 giugno 2014|lingua=en}}</ref><ref>
{{cita web
{{cita web|titolo=MySQL Standards Compliance|url=http://www.radionomy.com/en/radio/abc-jazz/|editore=[[Oracle Corporation]]|citazione=One of our main goals with the product is to continue to work toward compliance with the SQL standard, but without sacrificing speed or reliability.|accesso=22 giugno 2014|lingua=en}}
|titolo=Commercial License for OEMs, ISVs and VARs
</ref><ref>
|url=http://www.mysql.com/about/legal/licensing/oem/
{{cita web|titolo=MySQL Differences from Standard SQL|url=https://dev.mysql.com/doc/refman/5.7/en/differences-from-ansi.html|editore=[[Oracle Corporation]]|citazione=We try to make MySQL Server follow the ANSI SQL standard and the ODBC SQL standard, but MySQL Server performs operations differently in some cases|accesso=22 giugno 2014|lingua=en}}
|editore=[[Oracle Corporation]]
</ref> I sistemi e i [[linguaggi di programmazione]] che lo supportano sono molto numerosi, fra cui [[ODBC]], [[Java (linguaggio di programmazione)|Java]], [[Mono (progetto)|Mono]], [[Microsoft .NET|.NET]], [[PHP]], [[Python]].
|citazione=Oracle provides its MySQL database server and MySQL Client Libraries under a dual license model designed to meet the development and distribution needs of both commercial distributors (such as OEMs, ISVs and VARs) and open source projects.
|accesso=22 giugno 2014
|lingua=en
}}</ref><ref>
{{cita web
|titolo=MySQL Standards Compliance
|url=http://www.radionomy.com/en/radio/abc-jazz/
|editore=[[Oracle Corporation]]
|citazione=One of our main goals with the product is to continue to work toward compliance with the SQL standard, but without sacrificing speed or reliability.
|accesso=22 giugno 2014
|lingua=en
}}
</ref>
<ref>
{{cita web
|titolo=MySQL Differences from Standard SQL
|url=http://dev.mysql.com/doc/refman/5.7/en/differences-from-ansi.html
|editore=[[Oracle Corporation]]
|citazione=We try to make MySQL Server follow the ANSI SQL standard and the ODBC SQL standard, but MySQL Server performs operations differently in some cases
|accesso=22 giugno 2014
|lingua=en
}}
</ref>
 
I sistemi e i linguaggi di programmazione che supportano MySQL sono molto numerosi: [[ODBC]], [[Java (linguaggio)|Java]], [[Mono (progetto)|Mono]], [[.NET]], [[PHP]], [[Python]] e molti altri.
 
Le piattaforme [[LAMP]] e [[WAMP (piattaforma)|WAMP]] incorporano MySQL per l'implementazione di server per gestire [[sito web|siti web]] dinamici, inoltre molti dei [[Content Management System]] di successo come [[WordPress]], [[Joomla]] e [[Drupal]] nascono proprio con il supporto predefinito a MySQL.<ref>
{{cita web
|titolo=About WordPress
|editore=[[WordPress]]
|url=http://wordpress.org/about/
|citazione=WordPress was born out of a desire for an elegant, well-architectured personal publishing system built on PHP and MySQL
|accesso=22 giugno 2014
|lingua=en
}}
</ref><ref>
{{cita web
|titolo=What is Joomla?
|editore=[[Joomla]]
|url=http://www.joomla.org/about-joomla.html
|citazione=Joomla is based on PHP and MySQL
|accesso=22 giugno 2014
|lingua=en
}}
</ref><ref>
{{cita web
|titolo=A proposito di Drupal
|editore=[[Drupal]]
|url=http://www.drupal.it/a_proposito_di_drupal
|citazione=Utilizza come base di dati MySQL e PostgreSQL in modo nativo ma è utilizzabile con ogni tipo di database server.
|accesso=22 giugno 2014
}}
</ref>
== Storia ==
Il [[codice sorgente]] di MySQL era inizialmente di proprietà della società MySQL AB, veniva però distribuito con la licenza [[GNU GPL]] oltre che con una [[licenza (informatica)|licenza]] che prevedeva assistenza commerciale. Fino alla versione 4.0, una buona parte del codice del client era licenziato con la [[GNU LGPL]] e potevaquindi dunquepoteva essere utilizzato anche per applicazioni proprietarie. Dalla versione 4.1 in poi, anche il codice del client è distribuito sotto GNU GPL. Esiste peraltro una [httphttps://www.mysql.com/company/legal/licensing/foss-exception.html clausola estensiva] che consente l'utilizzo di MySQL con una vasta gamma di licenze libere.
 
Nel luglio [[2007]] la società svedese MySQL AB aveva 385 dipendenti in numerosi paesi. I suoi principali introiti provenivano dal supporto agli utilizzatori di MySQL tramite il pacchetto [httphttps://www.mysql.com/products/enterprise/ Enterprise], dalla vendita delle licenze commerciali e dall'utilizzo da parte di terzi del marchio ''MySQL''. Il 16 gennaio [[2008]] [[Sun Microsystems]] ha acquistato la società per un miliardo di dollari,<ref name=autogenerato1>{{en}} [http://www.sun.com/aboutsun/pr/2008-01/sunflash.20080116.1.xml Sun Microsystems Announces Agreement to Acquire MYSQL]</ref> stimando il mercato del database in 15 miliardi di [[dollaro|dollari]].
 
Il 20 aprile 2009 alla stessa Sun Microsystems è stata proposta l'acquisizione da parte di [[Oracle Corporation|Oracle]] per 7,4 miliardi di dollari. L'accordo, approvato dall'antitrust USA, è poi passato al vaglio degli organi corrispondenti dell'Unione Europea, preoccupati dalper il [[conflitto di interessi]] costituito dai database commerciali Oracle rispetto a MySQL. Il padre di MySQL, [[Michael Widenius]], il padre di MySQL, ha lanciato una petizione online per opporsi alla fusione. Nonostante ciò l'[[Unione europea]] ha dato parere favorevole, e l'acquisizione è stata completata il 27 gennaio 2010<ref>{{cita web|url= httphttps://finance.yahoo.com/news/Oracle-Completes-Acquisition-iw-2658323391.html?x=0&.v=1|editore=Yahoo Finance|titolo=Oracle Completes Acquisition of Sun|lingua=EN|data=27 gennaio 2010|accesso=4 febbraio 2010|urlmorto=sì}}</ref>.
Il software [[MediaWiki]], che gestisce i siti del progetto [[Wikipedia]], è basato su database MySQL.
 
Il ramo 5.5 è il primo a includere estensioni non Open Source, disponibili solo nella versione Enterprise (a pagamento).<ref name=autogenerato1 /><ref>{{en}} [https://blogs.oracle.com/MySQL/entry/new_commercial_extensions_for_mysql New Commercial Extensions for MySQL Enterprise Edition] {{Webarchive|url=https://web.archive.org/web/20130426203840/https://blogs.oracle.com/MySQL/entry/new_commercial_extensions_for_mysql |date=26 aprile 2013 }}</ref>
 
A partire dal [[2012,]] diverse [[distribuzioni Linux]] e alcuni utenti importanti (come Wikipedia<ref>[{{cita web|url=https://blog.wikimedia.org/2013/04/22/wikipedia-adopts-mariadb/ |titolo=Wikipedia Adopts MariaDB]}}</ref>) hanno iniziato a sostituire MySQL con il [[Fork (sviluppo software)|fork]] [[MariaDB]].<ref name="2012-mariadb-discussion-launchpad" />[<ref>{{cita web|url=http://www.itwire.com/opinion-and-analysis/open-sauce/58571-monty-has-last-laugh-as-distros-abandon-mysql |titolo=Monty has last laugh as distros abandon MySQL]|accesso=24 giugno 2013|dataarchivio=29 dicembre 2013|urlarchivio=https://web.archive.org/web/20131229161325/http://www.itwire.com/opinion-and-analysis/open-sauce/58571-monty-has-last-laugh-as-distros-abandon-mysql|urlmorto=sì}}</ref><ref>[http{{cita web|url=https://monty-says.blogspot.it/2013/02/mariadb-living-in-interesting-times.html |titolo=MariaDB living in interesting times]}}</ref><ref>[{{cita web|url=https://kb.askmonty.org/it/distribuzioni-che-includono-mariadb/ |titolo=Distribuzioni che includono MariaDB]|accesso=24 giugno 2013|urlarchivio=https://web.archive.org/web/20130320061603/https://kb.askmonty.org/it/distribuzioni-che-includono-mariadb/|urlmorto=sì}}</ref>.
 
== Sviluppo ==
Fino a {{Chiarire|qualche anno fa|sostituire il riferimento relativo con uno assoluto}} lo sviluppo del programma era opera soprattutto dei suoi sviluppatori iniziali: [[David Axmark]], [[Allan Larsson]] e [[Michael Widenius]]. Quest'ultimo era il principale autore del codice -, oltre che principale socio della {{Chiarire|società|Quale? -Ci sono state 2 acquisizioni}}, e tuttora coordina il progetto, tra l'altro vagliando i contributi che pervengono dai volontari. I contributi vengono accettati a condizione che il loro autore condivida i diritti d'autore con la {{Chiarire|società|Quale? Ci sono state 2 acquisizioni}}.
 
Da luglio 2007 la società impiega un centinaio di sviluppatori a tempo pieno.
== Caratteristiche ==
L'[[Internet Assigned Numbers Authority]] ha formalmente assegnato al server MySQL la [[Porta (reti)|porta]] [[Transmission Control Protocol|TCP]] <code>3306</code>.<ref>{{Cita web|url = https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=mysql|titolo = Service Name and Transport Protocol Port Number Registry|lingua = en|accesso = 17 febbraio 2021|sito = [[Internet Assigned Numbers Authority]]}}</ref><ref>{{Cita web|url = https://dev.mysql.com/doc/mysql-port-reference/en/mysql-ports-reference-tables.html|titolo = Chapter 3 MySQL Port Reference Tables|accesso = 17 febbraio 2021|lingua = en|dataarchivio = 27 gennaio 2021|urlarchivio = https://web.archive.org/web/20210127163621/https://dev.mysql.com/doc/mysql-port-reference/en/mysql-ports-reference-tables.html|urlmorto = sì}}</ref>
 
== Versioni ==
=== 3.23 ===
La prima versione alfa del ramo 3.23.x è stata rilasciatapubblicata nel luglio 1999. La prima {{Chiarire|versione di produzione}} è del gennaio 2001. Nelle versioni 3.23.x sono stati aggiunti i tipi di tabella [[MyISAM]] (che rimpiazza il vecchio Isam), HEAP (ora MEMORY), [[InnoDB]] e BDB. Inoltre sono state aggiunte la [[ricerca full text]] e la replica dei database.
Nelle versioni 3.23.x sono stati aggiunti i tipi di tabella [[MyISAM]] (che rimpiazza il vecchio Isam), HEAP (ora MEMORY), [[InnoDB]] e BDB. Inoltre sono state aggiunte la [[ricerca fulltext]] e la [[replica]] dei database.
 
=== 4.0 ===
Nell'ottobre 2001 è stata rilasciatapubblicata la prima versione alfa del ramo 4.0.x, mentre nel marzo 2003 è entrata in produzione. Le aggiunte più significative sono:
Le aggiunte più significative sono:
* una [[cache]] per le query
* le query di tipo [[UNION]]
* [[DELETE]] multitabella
* migliorate le tabelle Merge perchéaffinché supportino le [[INSERT]] e i campi autoincrementanti
* limitazione delle risorse utilizzabili da ogni singolo utente
* variabili d'ambiente reimpostabili con il comando SET
* una libreria per incorporare le funzioni di MySQL in un altro programma
 
=== 4.1 ===
La prima versione del ramo 4.1.x risale all'aprile [[2003]], mentre nell'ottobre del [[2004]] è entrato in produzione. Le aggiunte più significative sono:
Le aggiunte più significative sono:
* le Subquery. Queste sono delle query [[SQL]] nidificate. Si ha dunque la possibilità di scrivere:
<sourcesyntaxhighlight lang="sql">SELECT * FROM tabella1 WHERE colonna1 = (SELECT colonna1 FROM tabella2 LIMIT 1)</sourcesyntaxhighlight>
* Dati geografici memorizzati secondo il modello [[OpenGIS]];
* I ''Prepared Statements'';
Line 129 ⟶ 67:
* Commenti a livello di colonna.
 
=== 5.0 ===
Il 22 dicembre [[2003]] viene rilasciatapubblicata la prima versione della serie 5.0, che è entrata in produzione il 19 ottobre [[2005]]. Le aggiunte più significative sono:
Le aggiunte più significative sono:
* Le [[Vista (modello relazionale)|viste]], tabelle virtuali ricavate da una query SQL, aggiornabili quando possibile;
* Le [[stored procedure]], un vero e proprio linguaggio di programmazione per interagire con i dati del database. Oltre ai soliti parametri di ricerca e selezione è possibile inserire costrutti [IF ... THEN ... ELSE], tanto per fare un esempio;
* I [[trigger (basi di dati)|trigger]], istruzioni SQL che vengono lanciate automaticamente prima o dopo l'esecuzione di determinate query su determinate tabelle
* ''INFORMATION_SCHEMA'', un database virtuale che descrive la struttura di tutti gli altri database; inoltre i comandi SHOW, che anch'essi restituiscono informazioni sulla struttura dei database, sono stati potenziati;
Line 141 ⟶ 78:
* Un'[[Application Programming Interface|API]] ben strutturata per sviluppare nuovi tipi di tabelle.
 
=== 5.1 ===
La prima versione [[Versione alpha|alfa]] pubblica è uscita il 29 novembre [[2005]]. Le principali nuove caratteristiche sono:
* Il partizionamento delle tabelle;
* Un'[[Application Programming Interface|API]] per scrivere nuovi [[parser]] per le ''ricerche FULLTEXT'';
Line 153 ⟶ 90:
* ALTER TABLE, CREATE INDEX e DROP INDEX sono molto più performanti.
 
=== 5.2 ===
La versione 5.2 è in fase alfa e le principali novità sono il nuovo storage engine Falcon e il backup online.
Sul sito di MySQL è scomparso ogni riferimento alla versione 5.2 e le novità che avrebbe dovuto introdurre sono state pianificate per la versione 6.0.
 
=== 5.4 ===
Si tratta del primo ramo sviluppato sotto l'egida della Sun -, ora Oracle. Non è quindi un caso che questa versione abbia avuto come unico scopo l'ottimizzazione del server su sistemi Solaris e su hardware SPARC, nonché l'ottimizzazione di InnoDB -, in particolare della sua configurazione di default, che prima aveva notevoli difetti.
 
=== 5.5 ===
Si tratta del primo ramo che è divenuto stabile sotto l'egida di Oracle.
La versione 5.5 introduce diverse nuove funzionalità:
* La '''replicazione semisincrona''' fornisce una maggiore garanzia sui dati poiché il commit sulla base dati Master attende che almeno uno Slave abbia ricevuto le modifiche;
* Viene introdotto il '''Performance Schema''' che contiene numerose viste utili per il tuning della base dati;
* L'Engine '''InnoDB''' diventa il default, ene vienevengono resoincrementate moltole più performanteprestazioni e viene reso scalabile sui moderni processori multicore.
 
=== 5.6 ===
È l'ultima versione rilasciatapubblicata in produzione. Sono molte, di cui alcune molto attese, le nuove funzionalità della versione 5.6:
Sono molte, di cui alcune molto attese, le nuove funzionalità della versione 5.6:
* La gestione dei microsecondi e dei millisecondi nei datatype temporali e nei timestamp;
* La possibilità di controllare i dati della Host Cache (ede i relativi errori);
* Nuove viste, utili per il monitoraggio ed il tuning della base dati, nel Performance Schema e nell'Information Schema;
* La possibilità di escludere alcune directory dalla ricerca come nome di database;
Line 178 ⟶ 114:
* Molte utili estensioni che migliorano la sicurezza della base dati.
 
=== 5.7 ===
Questo ramo è in sviluppo. Le novità sono principalmente nello Storagestorage Engineengine InnoDB. Il ramo 5.7 introduce anche l'ALTER TABLE online e lo stack degli errori.
 
=== 6.0 ===
Questa versione è stata cancellata e parte del codice sviluppato non sarà incluso nelle prossime versioni. Da questo ramo sono state importate alcune delle funzionalità di [[MariaDB]].
 
== Compatibilità ==
<!-- Non basta dire [[multipiattaforma]]? -->
MySQL, essendo scritto in [[C (linguaggio)|linguaggio C]] e [[C++]], è disponibile su molti differenti [[sistema operativo|sistemi operativi]] tra cui [[AIX (sistema operativo)|AIX]], AmigaOS, [[BSDi]], Digital Unix, [[FreeBSD]], [[HP-UX]], [[GNU/Linux]], [[macOS]], [[NetBSD]], [[Novell NetWare]], [[OpenBSD]], [[OS/2]] Warp, [[Silicon Graphics|SGI]] [[IRIX]], [[Oracle Solaris (sistema operativo)|Solaris]], [[SunOS]], SCO OpenServer, SCO UnixWare, SGI Irix, [[Tru64]], [[Windows 95]], [[Windows 98]], [[Windows NT]], [[Windows 2000]], [[Windows XP]], [[Windows Server 2003|Windows 2003]], [[Windows Server 2008]], [[Windows Server 2008 R2]], [[Windows Vista]], [[Windows 7]], [[Windows 8]].<ref>
MySQL, essendo scritto in [[C (linguaggio)|linguaggio C]] e [[C++]], è disponibile su molti differenti [[sistema operativo|sistemi operativi]] tra cui [[AIX (sistema operativo)|AIX]], [[AmigaOS]], [[BSDi]], Digital Unix, [[FreeBSD]], [[HP-UX]], [[GNU/Linux]], [[macOS]], [[NetBSD]], [[Novell NetWare]], [[OpenBSD]], [[OS/2]] Warp, [[Silicon Graphics|SGI]] [[IRIX]], [[Oracle Solaris (sistema operativo)|Solaris]], [[SunOS]], SCO OpenServer, SCO UnixWare, SGI Irix, [[Tru64]], [[Windows 95]], [[Windows 98]], [[Windows NT]], [[Windows 2000]], [[Windows XP]], [[Windows Server 2003|Windows 2003]], [[Windows Server 2008]], [[Windows Server 2008 R2]], [[Windows Vista]], [[Windows 7]], [[Windows 8]] e [[Windows 10]].<ref>
{{cita web
{{cita web|titolo=The Main Features of MySQL|url=https://dev.mysql.com/doc/refman/5.7/en/features.html|editore=[[Oracle Corporation]]|citazione=Written in C and C++|accesso=29 giugno 2014|lingua=en}}
|titolo=The Main Features of MySQL
|url=http://dev.mysql.com/doc/refman/5.7/en/features.html
|editore=[[Oracle Corporation]]
|citazione=Written in C and C++
|accesso=29 giugno 2014
|lingua=en
}}
</ref>
 
Line 203 ⟶ 133:
[[GNU/Linux]] 2.x Intel, [[Oracle Solaris (sistema operativo)|Solaris]] (SPARC and x86), [[FreeBSD]] 4.x/5.x (x86, sparc64), [[AIX (sistema operativo)|AIX]] 4.3.x, SCO OpenServer, SCO UnixWare 7.1.x
 
Sono disponibili dei driver per i linguaggi [[C (linguaggio)|C]], [[C++]], [[C sharp|C#]], [[Eiffel (linguaggio)|Eiffel]], [[Java (linguaggio di programmazione)|Java]], [[Perl]], [[PHP]], [[Python]], [[Ruby (linguaggio di programmazione)|Ruby]], [[Tcl]] e per le piattaforme Mono e .NetNET.
 
Infine, il linguaggio SQL di MySQL comprende numerose estensioni che sono tipiche di altri DBMS, quali [[PostgreSQL]], Oracle e Sybase. In questo modo le query non standard scritte per altri DBMS in alcuni casi funzioneranno senza problemi.
 
== Amministrazione ==
{{vedi anche|MySQL Manager}}
[[File:PhpMyAdmin-main-it.png|thumbminiatura|Pagina iniziale di [[phpMyAdmin]]|300px]]
Esistono diversi tipi di [[MySQL Manager]], ovvero di strumenti per l'amministrazione di MySQL. Uno dei programmi più popolari per amministrare i database MySQL è [[phpMyAdmin]] che richiede un [[web server|server web]] come [[Apache HTTP Server]] e il supporto del linguaggio [[PHP]]. Si può utilizzare facilmente tramite un qualsiasi [[browser]].
Uno dei programmi più popolari per amministrare i database MySQL è [[phpMyAdmin]] (richiede un [[web server|server web]] come [[Apache HTTP Server]] ed il supporto del linguaggio [[PHP]]). Si può utilizzare facilmente tramite un qualsiasi [[browser]].
 
Alcune offerte di terze parti sono [[HeidiSQL]], [[SQLYog]] o [[Toad for MySQL]]. In alternativa la stessa MySQL AB offre programmi quali [[MySQL Administrator]] (amministrazione del database, degli utenti, operazioni pianificate, carico del server, ...) e [[MySQL Query Browser]] (esecuzione di svariati tipi di query), [[MySQL Migration Toolkit]] per importare da altri DBMS.
 
Per illa disegnoprogettazione e la modellazione di database MySQL esiste [[MySQL Workbench]]: integra il disegno, la modellazione, la creazione e l'aggiornamento di database in un unico ambiente di lavoro.
 
In passato veniva sviluppato anche [[MySQLcc]] (MySQL control center), sostituito da [[MySQL Query Browser]].
Line 221 ⟶ 150:
In alternativa a gestori grafici è possibile utilizzare direttamente la [[riga di comando]], preferita da utenti/amministratori esperti.
 
== Tipi tabelle MYSQL (Storagestorage Engineengine) ==
In MySQL una tabella può essere di diversi tipi (o ''[[Storagestorage Engineengine]]''). Ogni tipo di tabella presenta proprietà e caratteristiche differenti (transazionale o meno, migliori prestazioni, diverse strategie di locking, funzioni particolari, ecc). Esiste poi un'API che si può utilizzare per creare in modo relativamente facile un nuovo tipo di tabella, che poi si può installare senza dover ricompilare o riavviare il server.
 
=== Storage Engineengine ufficiali ===
I tipi di tabella predefiniti sono:
 
* [[MyISAM]]
* [[InnoDB]] (transazionale, sviluppata da InnoBase Oy, società ora comprata da Oracle)
* [[Memory (Storagestorage Engineengine)|Memory]] (una volta si chiamava Heap)
* [[Merge (database)|Merge]]
* NDB, o ClusterDB (introdotta nella 5.0)
* CSV (introdotta nella 5.1)
Line 237 ⟶ 166:
* [[BLACKHOLE]] (introdotta nella 5.0)
* Falcon (non è mai stato terminato e il progetto è abbandonato)
* [[Aria (Storagestorage Engineengine)|Aria]] (è stato sviluppato inizialmente per MySQL, che non l'ha mai adottato; è invece presente in [[MariaDB]])
 
=== Storage Engineengine prodotti da terze parti ===
{{W|informatica|settembre 2016|link esterni in corpo voce}}
Esistono anche storage engine prodotti da terze parti. Eccone alcuni:
 
* [[XtraDB]] - Fork di InnoDB, sviluppato da Percona
* [[OQGRAPH]] - Simula strutture a [[grafo]]
* [SolidDB<ref>{{cita web|url=http://dev.soliddb.com/ |titolo=solidDB]}}</ref> - Motore transazionale
* [RitmarkFS<ref>{{cita web|url=http://www.ritmark.com/ |urlarchivio=https://web.archive.org/web/20060713082654/http://www.ritmark.com/ |titolo=RitmarkFS]}}</ref> - Permette di accedere al filesystem in lettura e in scrittura tramite comandi SQL, supporta anche la replica del filesystem
* [Distributed Data Engine<ref>{{cita web|url=http://www.ddengine.org/ |urlarchivio=https://web.archive.org/web/20060627093152/http://www.ddengine.org/ |titolo=Distributed Data Engine]}}</ref> - Motore per dati distribuiti, per gestire meglio il carico di lavoro
* [[Sphinx (software)#API|SphinxSE]] - Interfaccia MySQL con Sphinx
* [[CassandraSE]] - Interfaccia MariaDB con Apache Cassandra
* [httpmdbtools<ref>{{cita web|url=https://sourceforge.net/projects/mdbtools |titolo=mdbtools]}}</ref> - Permette di leggere e scrivere un file . mdb (Access)
* [http://www.infobright.com/ BrightHouse] - Appare all'utilizzatore come un normale MyISAM, ma struttura internamente i dati per colonne anziché per righe. Da utilizzare tipicamente in lettura per Data Warehouse: riduce da 10 a 100 volte i tempi di accesso e lo spazio per i dati.
 
Alcuni di questi Storagestorage Engineengine sono distribuiti con MariaDB o Percona Server.
 
=== Storage Engineengine Obsoletiobsoleti ===
* ISAM (non più supportato; era il motore di default prima di essere sostituita da MyISAM)
* BDB (transazionale, sviluppata da SleepyCat, società ora acquisita da Oracle; dalla versione 5.1.12 non è più presente in MySQL)
* Gemini (non più supportato e non più compatibile con le API di MySQL da molti anni). Una volta era importantissimo in quanto motore transazionale; era prodotto dalla NuSphere, la quale non ha mai rispettato la licenza GPLv2 di MySQL e in tribunale ha tentato di negarne la validità giuridica, salvo poi accordarsi con MySQL per il pagamento dei danni economici e ritirare il prodotto dal mercato. Lo sviluppo e il supporto per Gemini sono cessati.
* [https://web.archive.org/web/20060615012734/http://www.primebase.com/xt/ PBXT] - Motore transazionale progettato per applicazioni web ad alta concorrenza, distribuito con MariaDB.
* ''Amira'' è un fork di Gemini ed è stato mantenuto per un certo periodo dalla comunità.
 
== Fork ==
Alcuni [[Fork (sviluppo software)|fork]] sono nati in critica verso la poca apertura di MySQL ai contributi dei volontari esterni e la lentezza della pubblicazione dei fix dei [[bug]] fix segnalati.
 
=== Drizzle ===
{{vedi anche|Drizzle}}
Nato da Brian Aker tra l'aprile e il maggio del 2008, questo fork si propone come un DBMS leggero. Infatti, partendo da MySQL 6 alcuni sviluppatori hanno eliminato la maggior parte delle sue funzioni, mantenendo il cuore, ripulendolo e modificando la sua architettura. L'idea è quella di creare un [[microkernel]] con numerose interfacce che può utilizzare per caricare funzionalità esterne.
 
Durante il processo di pulizia il codice è arrivato a dimensioni inferiori ai 200 KB.{{cnSenza fonte}} Tra le funzionalità eliminate vi sono: stored procedure, viste, trigger, prepared statement, cache, MyISAM. Secondo gli sviluppatori, tutte queste funzionalità potrebbero essere reimplementate sotto forma di plugin, senza appesantire inutilmente gli utenti che non le utilizzano: nonostante queste caratteristiche siano insostituibili in particolari situazioni, ognuna di esse è completamente inutile per la quasi totalità degli utenti di MySQL.
 
=== MariaDB ===
{{vedi anche|MariaDB}}
Questo fork è stato creato da Monty Widenius nel 2009 dopo la sua fuoriuscita dalla Sun Microsystems, uscita dovuta in partesia a problemi con questa società e in partesia all'acquisizione della stessa da parte della concorrente Oracle.<ref>{{en}} [httphttps://monty-says.blogspot.com/2009/12/help-keep-internet-free.html intervista a Widenius riguardo a Mysql ed al recente fork da lui creato: MariaDB]</ref> Quest'ultima motivazione ha portato molti dei principali sviluppatori di MySQL a seguire Widenius nel Monty Program, la nuova società da lui avviata per supportare il fork.
 
Il nome MariaDB è dovuto al fatto che inizialmente questo fork si focalizzava soprattutto sullo sviluppo dello Storagestorage Engineengine Aria, (il cui vecchio nome era Maria, dedicatoin dedica alla terza figlia di Widenius), una sorta di evoluzione di MyISAM.
 
Sono state incluse patch realizzate da terze parti, in particolare prelevate dai fork di MySQL sviluppati da Google, Facebook e Twitter, nonché Storagestorage Engineengine sviluppati da terze parti. Inoltre altre migliorie al server e alcuni Storagestorage Engineengine aggiuntivi sono stati sviluppate appositamente, alcune evoluzioni sviluppate per MySQL sono state importate nel fork e alcuni bug presenti nel programma originale sono stati corretti.
 
=== Percona Server ===
{{vedi anche|Percona Server}}
Percona Server with XtraDB, o semplicemente Percona Server, è un fork sviluppato da [[Percona]] che contiene, oltre allo Storagestorage Engineengine XtraDB (fork di [[InnoDB]]) diverse patch sviluppate principalmente dalla stessa società.
 
=== OurDelta ===
Si trattava di una distribuzione sviluppata dalla società australiana [[Open Query]]. Il ramo 5.0 (prima versione del programma) si basava sul codice di MySQL 5.0, mentre i rami 5.1 e 5.2 si basavano su MariaDB 5.1 e 5.2. OurDelta applicava diverse patch sviluppate da terze parti e crea pacchetti per le distribuzioni GNU/Linux Debian, Ubuntu, Red Hat e CentOS.
 
Questo fork non è più mantenuto. Le ultime modifiche al codice, tuttora ospitato su Launchpad, risalgono al febbraio 2010.
 
=== Proven Scaling ===
Proven Scaling aggiunge all'edizione enterprise di MySQL vari plugin che provengono dalla comunità del software libero.
 
Il fork nacque dalla constatazione che MySQL Community Edition era quasi defunto: secondo i contestatori, gli annunci ufficiali prospettavano solo due release annuali più qualche security fix, e dunque un utente avrebbe dovuto utilizzare MySQL Enterprise Edition, oppure rassegnarsi ad utilizzare prodotti superati.<ref>[http://www.mysqlperformanceblog.com/2008/07/01/should-we-proclaim-mysql-community-edition-dead/ Should we proclaim MySQL Community Edition Dead ? - MySQL Performance Blog<!-- Titolo generato automaticamente -->]</ref>
 
Il repository contiene le versioni, anche datate, per tutti i sistemi operativi supportati da MySQL.
 
== Diffusione ==
Le piattaforme [[LAMP]] e [[WAMP (piattaforma)|WAMP]] incorporano MySQL per l'implementazione di server per gestire [[sito web|siti web]] dinamici, inoltre molti dei ''[[content management system]]'' di successo come [[WordPress]], [[Joomla]], [[Drupal]] e [[TikiWiki]] nascono proprio con il supporto predefinito a MySQL.<ref>
{{cita web|titolo=About WordPress|editore=[[WordPress]]|url=https://wordpress.org/about/|citazione=WordPress was born out of a desire for an elegant, well-architectured personal publishing system built on PHP and MySQL|accesso=22 giugno 2014|lingua=en}}
</ref><ref>
{{cita web|titolo=What is Joomla?|editore=[[Joomla]]|url=https://www.joomla.org/about-joomla.html|citazione=Joomla is based on PHP and MySQL|accesso=22 giugno 2014|lingua=en}}
</ref><ref>
{{cita web|titolo=A proposito di Drupal|editore=[[Drupal]]|url=http://www.drupal.it/a_proposito_di_drupal|citazione=Utilizza come base di dati MySQL e PostgreSQL in modo nativo ma è utilizzabile con ogni tipo di database server.|accesso=22 giugno 2014}}
</ref>
 
Il software [[MediaWiki]] nato nel [[2002]], che gestisce i siti del progetto [[Wikimedia Foundation|Wikimedia]], è basato su database MySQL. [[Wikimedia Foundation]] ha adottato MySQL fino al 2015 circa, migrando poi a [[MariaDB]].<ref>{{Cita web|url = https://www.mediawiki.org/wiki/File:MySQL_at_Wikipedia.pdf|titolo = MySQL at Wikipedia|lingua = en|autore = Jaime Crespo|accesso = 20 dicembre 2021|data = 23 settembre 2015}}</ref>
Il repository contiene le versioni (anche datate) per tutti i sistemi operativi supportati da MySQL.
 
== Note ==
Line 301 ⟶ 240:
* [[Database management system]]
* [[SQL]]
* [[Storage Engineengine]]
* [[mSQL]]
* [[phpMyAdmin]]
Line 308 ⟶ 247:
* [[MySQL Workbench]]
* [[MariaDB]]
* [[Cloud database]]
 
== Altri progetti ==
{{Interprogetto}}
{{interprogetto|commons=Category:MySQL}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{cita web|http://www-it.mysql.com/|Sito ufficiale}}
* {{FOLDOC}}
* [http://www.oracle.com/us/products/mysql/overview/index.html MySQL], dal sito di [[Oracle]]
* [http://www.oracle.com/us/products/mysql/overview/index.html MySQL], dal sito di [[Oracle Corporation|Oracle]]
* [http://downloads.mysql.com/docs/administrator-it.a4.pdf Manuale di MySQL Administrator]<!--http://dev.mysql.com/doc/administrator/it/index.html-->
* [http://downloads.mysql.com/docs/query-browser-it.pdf Manuale di MySQL Query Browser]<!--http://dev.mysql.com/doc/query-browser/it/index.html-->
* {{en}} [http://downloads.mysql.com/docs/migration-toolkit-en.pdf Manuale di MySQL Migration Toolkit]<!--http://dev.mysql.com/doc/migration-toolkit/en/index.html-->
* {{cita web|url=https://blogs.oracle.com/MySQL/|titolo=Oracle's MySQL Blog|lingua=en|accesso=10 marzo 2013|dataarchivio=8 marzo 2013|urlarchivio=https://web.archive.org/web/20130308085121/https://blogs.oracle.com/MySQL/|urlmorto=sì}}
* {{en}} [httphttps://web.archive.org/web/20120722013146/http://forge.mysql.com/wiki/Main_Page MySQL Forge Wiki], il wiki ufficiale dedicato a MySQL (archiviato)
* [https://web.archive.org/web/20041209053830/http://freephp.html.it/guide/lezioni.asp?idguida=9 Breve tutorial per phpMyAdmin], da HTML.it
* [https://www.mrw.it/mysql/guida-mysql/ Guida MySQL in Italiano], da MRW.it
 
{{Database management system}}
Line 327 ⟶ 269:
 
[[Categoria:MySQL| ]]
[[Categoria:Sun]]