MySQL

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 14.9.2022 tarkistetusta versiosta . vahvistus vaatii 1 muokkauksen .
MySQL
Tyyppi relaatiotietokantajärjestelmä , avoimen lähdekoodin ohjelmisto ja palvelinohjelmisto
Kehittäjä MySQL AB , Sun Microsystems ja Oracle
Sisään kirjoitettu C++ [2] ja C [3]
Käyttöjärjestelmä Linux [4] , Microsoft Windows [4] , macOS [4] , FreeBSD [4] , Solaris [4] ja Unix-tyyppinen käyttöjärjestelmä
Ensimmäinen painos 1995
Laitteistoalusta x86_64 [5] , IA-32 [5] , A64 [d] [5] ja SPARC [5]
uusin versio
Luettavat tiedostomuodot MySQL-taulukon määritysmuoto [d]
Luodut tiedostomuodot MySQL-taulukon määritysmuoto [d]
Lisenssi GNU GPL 2 [6] ja oma [7]
Verkkosivusto mysql.com
 Mediatiedostot Wikimedia Commonsissa

MySQL ( IPA: [maɪ ˌɛskjuːˈɛl] ) on ilmainen relaatiotietokannan hallintajärjestelmä [8] . MySQL:n kehittäjänä ja tukena toimii Oracle Corporation , joka hankki tavaramerkin oikeudet yhdessä ostetun Sun Microsystemsin kanssa, joka oli aiemmin hankkinut ruotsalaisen MySQL AB :n . Tuotetta jaetaan sekä GNU General Public License -lisenssillä että sen omalla kaupallisella lisenssillä. Lisäksi kehittäjät luovat toimintoja lisensoiduille käyttäjille. Tämän tilauksen ansiosta replikointimekanismi ilmestyi melkein varhaisimpiin versioihin .

MySQL on ratkaisu pienille ja keskisuurille sovelluksille. Sisältyy WAMP- , AppServ- ja LAMP - palvelimiin sekä Denver- , XAMPP- ja VertrigoServ- palvelimien kannettaviin kokoonpanoihin . MySQL:ää käytetään tyypillisesti palvelimena, jota käyttävät paikalliset tai etäasiakkaat, mutta jakelu sisältää sisäisen palvelinkirjaston, jonka avulla voit sisällyttää MySQL:n itsenäisiin ohjelmiin.

MySQL DBMS:n joustavuutta tukee suuri määrä taulukkotyyppejä: käyttäjät voivat valita MyISAM -taulukoista , jotka tukevat kokotekstihakua, tai InnoDB -taulukoista , jotka tukevat yksittäisten tietueiden tasolla tapahtuvia tapahtumia. Lisäksi MySQL:n mukana tulee erityinen EXAMPLE-taulukkotyyppi, joka näyttää kuinka luoda uudentyyppisiä taulukoita. Avoimen arkkitehtuurin ja GPL-lisensoinnin ansiosta MySQL-tietokantaan lisätään jatkuvasti uudentyyppisiä taulukoita.

26. helmikuuta 2008 Sun Microsystems osti MySQL AB :n miljardilla dollarilla [9] , 27. tammikuuta 2010 Oracle osti Sun Microsystemsin 7,4 miljardilla dollarilla [10] ja lisäsi MySQL:n DBMS -valikoimaansa [11] .

MySQL - kehittäjäyhteisö on luonut useita koodihaarukoita , kuten DrizzlePercona Server ja MariaDB . Kaikki nämä haarukat olivat olemassa jo silloin , kun Oracle otti Sunin haltuunsa .

MySQL:n alkuperä

MySQL sai alkunsa yrityksestä soveltaa mSQL :ää yrityksen omaan kehitykseen: taulukoihin, joissa käytettiin ISAM :ia  - matalan tason rutiineja. Tämän seurauksena kehitettiin uusi SQL - käyttöliittymä, mutta API perittiin mSQL:stä. Mistä nimi "MySQL" tulee, ei tiedetä varmasti. Kehittäjät antavat kaksi vaihtoehtoa: joko siksi, että melkein kaikki yrityksen kehitystyöt alkoivat etuliitteellä "My ..." (  englanniksi  -  "my ..."), tai Myun tyttären kunniaksi ( fin. My ) yksi järjestelmän kehittäjistä Mikael Widenius [12] [13] .

MySQL-delfiinilogossa on nimi " Sakila ". Se valittiin suuresta luettelosta käyttäjien ehdottamia "delfiinien nimiä". Nimen " Sakila " lähetti avoimen lähdekoodin kehittäjä Ambrose Twebaze .

Lisenssi

MySQL on kaksoislisensoitu. MySQL voidaan jakaa lisenssiehtojen mukaisesti. GPL-ehtojen mukaan jos jokin ohjelma kuitenkin käyttää MySQL-kirjastoja (tai sisältää muuta GPL-koodia), se on myös levitettävä GPL-lisenssin alaisena. Tämä voi olla ristiriidassa sellaisten kehittäjien suunnitelmien kanssa, jotka eivät halua avata ohjelmiaan avoimen lähdekoodin avulla. Tällaisia ​​tapauksia varten tarjotaan kaupallinen lisenssi, joka tarjoaa myös korkealaatuisen palvelutuen. Ilmaisille ohjelmistoille Oracle tarjoaa erillisen poikkeuksen sääntöön, joka nimenomaisesti sallii MySQL:n käytön ja jakamisen ohjelmistojen kanssa, joiden käyttöoikeus on Oraclen määrittämän luettelon mukaan. [neljätoista]

Alustat

MySQL on siirretty useille alustoille: AIX , BSDi , FreeBSD , HP-UX , Linux , macOS , NetBSD , OpenBSD , OS/2 Warp, SGI IRIX , Solaris , SunOS , SCO OpenServer , UnixWare , Tru65 , Windows 9 , Windows 98 , Windows NT , Windows 2000 , Windows XP , Windows Server 2003 , WinCE , Windows Vista , Windows 7 ja Windows 10 . OpenVMS :ään on myös MySQL-portti . DBMS:n virallisella verkkosivustolla ei tarjota vain lähdekoodeja ilmaiseksi ladattavaksi, vaan myös valmiita MySQL DBMS -suoritettavat moduulit, jotka on koottu ja optimoitu tietyille käyttöjärjestelmille .

Ohjelmointikielet

MySQL:llä on API [15] ja liittimet Delphille , C , C++ , Eiffel , Java , Lisp , Perl , PHP , Python , Ruby , Smalltalk , Component Pascal , Tcl ja Lua , kirjastoja .NET -alustan kielille ja myös tuki for ODBC :lle käyttämällä MyODBC ODBC -ohjainta .

MyODBC on ODBC (2.50) tason 0 ajuri (joissakin tason 1 ja 2 ominaisuuksia) ODBC-yhteensopivan sovelluksen yhdistämiseen MySQL:ään. MyODBC toimii kaikissa Microsoft Windows - järjestelmissä ja useimmissa Unix - alustoissa .

Julkaisuhistoria

[16] [17] [18] [19] [20] [21] [22]

MySQL 4.0

Vaikka versio 4.0 on vanhentunut, sillä on edelleen merkittävä jakelu. . Tämän version pääominaisuudet:

MySQL 4.1

Suositeltu versio vuodelle 2005 on MySQL 4.1, julkaistu 27. lokakuuta 2004 . Se sisältää seuraavat innovaatiot:

MySQL 5.0

MySQL 5.0, joka julkaistiin 24. lokakuuta 2005, on versio, jossa on huomattavasti paranneltu toiminnallisuus ja joka asettaa MySQL:n kaupallisten tietokantajärjestelmien tasolle . Jos aiemmin MySQL :ää syytettiin SQL -standardin riittämättömästä tuesta , niin tämän suositun tietokannan viidennen version myötä SQL-standardin tuki ilmestyi melkein kokonaan. MySQL 5.0 sisältää seuraavat innovaatiot:

MySQL 5.1

MySQL 5.1 jatkaa polkua kohti SQL:2003 -standardia . MySQL 5.1 sisältää seuraavat innovaatiot [25] [26] .

Maria-pöytätyyppi

Maria (versiosta 5.2.x lähtien - Aria) on MyISAM -tietovaraston laajennettu versio , johon on lisätty keinoja tietojen eheyden ylläpitämiseen kaatumisen jälkeen.

Marian [27] tärkeimmät edut :

  • Kaatumisen sattuessa nykyisen toiminnon tulokset palautetaan tai palautetaan tilaan, joka oli ennen LOCK TABLES -komentoa. Toteutus hakkuiden avulla.
  • Mahdollisuus palauttaa tila mistä tahansa toimintalokin kohdasta, mukaan lukien CREATE/DROP/RENAME/TRUNCATE tuki. Voidaan käyttää inkrementaalisten varmuuskopioiden luomiseen kopioimalla ajoittain toimintaloki.
  • Tuki kaikille MyISAM-sarakemuodoille, jota on laajennettu uudella "rivit lohkossa" -muodolla, joka käyttää sivutettua tietojen tallennustapaa, jossa sarakkeiden tiedot voidaan tallentaa välimuistiin.
  • Tulevaisuudessa otetaan käyttöön kaksi tilaa: tapahtumallinen ja ilman heijastusta tapahtumalokissa, ei-kriittisille tiedoille.
  • Tietosivun koko on 8 kt (MyISAMissa 1 kt), mikä mahdollistaa paremman suorituskyvyn indekseille kiinteäkokoisissa kentissä, mutta hitaammin muuttuvan pituisten avainten indeksoinnin tapauksessa.

MySQL 5.5

MySQL 5.5 -haara perustuu julkaisemattomaan MySQL 5.4 -sarjaan ja sisältää useita merkittäviä skaalautuvuus- ja suorituskykyparannuksia, mukaan lukien:

  • Käytä oletusarvoista InnoDB-moottoria.
  • Tuki puolisynkroniselle replikointimekanismille, joka perustuu Googlen InnoDB:n korjauksiin.
  • Tietojen osiointitoimintojen parantaminen. Laajennettu syntaksi suurten taulukoiden jakamiseen useisiin tiedostojärjestelmissä sijaitseviin osiin (osiointi). Lisätty RANGE-, LIST-toiminnot ja "osion karsimisen" optimointimenetelmä.
  • Uusi optimointimekanismi sisäkkäisille kyselyille ja JOIN-toiminnoille.
  • Sisäinen estojärjestelmä on suunniteltu uudelleen.
  • Integroidut Google-korjaukset InnoDB-optimoinnilla prosessoreissa, joissa on suuri määrä ytimiä.

MySQL 6.0

MySQL 6.0 on jäädytetty alfa-testauksessa. Aluksi päätettiin luoda versio 5.2, pian tämä versio nimettiin uudelleen 6.0:ksi. Myöhemmin MySQL 6.0 -tiedot kuitenkin katosivat sivustolta ja kehittäjät keskittyivät versioon 5.5 ja seuraavaan versioon 5.6.

Yksi version 6.0 tärkeimmistä innovaatioista oli uusi Falcon -taulukkotyyppi, jonka Oraclen hankkima Innobase kehitti mahdolliseksi InnoDB :n korvaamiseksi . Kun sama Oracle osti Sun Microsystemsin vuonna 2010 , Falconin kohtalo on edelleen kyseenalainen.

MySQL 5.7

MySQL 5.7.1 -haaran ensimmäinen versio julkistettiin 23. huhtikuuta 2013. MySQL 5.7.8 on sovitettu Debian 8:lle ja Ubuntu 15.04:lle. Uusin julkaisu on 5.7.32, päivätty 19.10.2020. [24]

MySQL 8.0

Versio 8.0.0 julkaistiin 12.9.2016, mutta versio 8.0.11, julkaistu 19.4.2018, oli virallisesti käytettävissä maailmanlaajuisesti. Uusin versio on 8.0.22 (julkaistu 19.10.2020) [28]

Tekniset tiedot

Pöydän enimmäiskoot

MySQL 3.22:n taulukoiden enimmäiskoko on 4 gigatavua, myöhemmissä versioissa ei ole rajoituksia.

Pöydän koko on rajoitettu sen tyypin mukaan. Yleensä MyISAM -tyyppiä rajoittaa käyttöjärjestelmän tiedostojärjestelmän tiedostokokorajoitus . Esimerkiksi NTFS :ssä tämä koko voisi teoriassa olla jopa 32 eksatavua . InnoDB : n tapauksessa yksi taulukko voidaan tallentaa useisiin tiedostoihin, jotka edustavat yhtä taulukkotilaa . Jälkimmäisen koko voi olla 64 teratavua .

Toisin kuin MyISAM , InnoDB :llä on merkittävä rajoitus sarakkeiden lukumäärälle, jotka voidaan lisätä yhteen taulukkoon. Oletusmuistisivun koko on 16 kilotavua, josta datalle on varattu 8123 tavua. Dynaamisiin kenttiin johtavan osoittimen koko on 20 tavua. Näin ollen dynaamista rivimuotoa ( ROW_FORMAT=DYNAMIC) käytettäessä yhdessä taulukossa voi olla enintään 409 saraketta, joiden tyyppi on blobtai text.

Lokalisointi

Versiosta 4.1 alkaen MySQL DBMS :ssä on otettu käyttöön uusi koodaus- ja lajittelujärjestelmä . Kun käytät Windows-1251-koodausta, sinun on ennen SQL-lauseiden suorittamista määritettävä yhteyden koodaus käyttämällä operaattoreita:

SET character_set_client = 'cp1251' ; SET character_set_results = 'cp1251' ; SET character_set_connection = 'cp1251' ;

Nämä kolme lausetta vastaavat yhden lauseen kutsumista:

SET NIMET 'cp1251'

Muuttuja character_set_clientmäärittää asiakkaalta lähetettävien tietojen koodauksen, muuttuja asiakkaalle character_set_resultslähetettyjen tietojen koodauksen, muuttuja character_set_connectionasettaa koodauksen, johon asiakkaalta vastaanotettu tieto muunnetaan ennen pyynnön suorittamista palvelimella.

Kun käytät Unicode UTF-8:aa, tämä lauseke näyttää tältä:

SET NIMET 'utf8mb4'

ISO 8859-5 -koodausta ei tueta.

Unicoden ongelma

MySQL ei salli säännöllisten lausekkeiden (REGEXP- ja RLIKE-operaattorit) oikeaa käyttöä merkkijonoissa monitavuisissa koodauksissa, kuten Unicodessa (UTF-8) [29] . Jos tällaisia ​​operaatioita tarvitaan, on vaihdettava yksitavuisiin koodauksiin, esimerkiksi venäläiseen Win-1251 tai KOI-8 .

Muistiinpanot

  1. Muutoksia MySQL 8.0.30:ssa (2022-07-26, yleinen saatavuus) - 2022.
  2. Mysql Open Source -projekti Open Hubissa: Languages ​​​​Page  (englanti) - 2006.
  3. Mysql Open Source -projekti Open Hubissa: Kielisivu - 2006.
  4. 1 2 3 4 5 Tuetut alustat: MySQL-  tietokanta
  5. 1 2 3 4 Tuetut alustat: MySQL-tietokanta
  6. https://github.com/mysql/mysql-server/blob/mysql-8.0.3/COPYING
  7. https://www.mysql.com/about/legal/licensing/oem/
  8. http://dev.mysql.com/doc/refman/5.7/en/what-is-mysql.html Arkistoitu 14. heinäkuuta 2017 Wayback Machine 1.3.1:ssä. Mikä on MySQL? MySQL 5.7 Reference Manual.
  9. MySQL :: Havainnot Kaj Arnö @Sun Arkistoitu 22. maaliskuuta 2012.  (Englanti)
  10. Oracle ostaa Sun (linkki ei saatavilla) . Haettu 24. huhtikuuta 2013. Arkistoitu alkuperäisestä 22. huhtikuuta 2009. 
  11. Oracle suorittaa Sun-hankinnan Arkistoitu 27. tammikuuta 2012 Wayback Machinessa 
  12. MySQL. Admin Guide = MySQL. Järjestelmänvalvojan opas. - M .: Williams Publishing House , 2005. - S.  624 . — ISBN 5-8459-0805-1 .
  13. [ MySQL:n historia  ] . Haettu 25. maaliskuuta 2008. Arkistoitu alkuperäisestä 31. elokuuta 2009. MySQL :n historia 
  14. FOSS-lisenssipoikkeus . Haettu 6. toukokuuta 2016. Arkistoitu alkuperäisestä 15. toukokuuta 2016.
  15. MySQL :: MySQL 8.0 -viiteopas :: 28 Liittimet ja API:t . dev.mysql.com. Haettu 15. huhtikuuta 2019. Arkistoitu alkuperäisestä 5. huhtikuuta 2019.
  16. B.3. Muutokset julkaisuun 3.23.x (elinkaaren tuki päättynyt) (kuollut linkki) . Oraakkeli. Haettu 24. elokuuta 2010. Arkistoitu alkuperäisestä 4. huhtikuuta 2013.  
  17. B.2. Muutokset julkaisuun 4.0.x (elinkaaren tuki päättynyt) (kuollut linkki) . Oraakkeli. Haettu 24. elokuuta 2010. Arkistoitu alkuperäisestä 4. huhtikuuta 2013. 
  18. B.1. Muutokset julkaisuun 4.1.x (elinkaaren tuki päättynyt) (kuollut linkki) . Oraakkeli. Haettu 24. elokuuta 2010. Arkistoitu alkuperäisestä 4. huhtikuuta 2013. 
  19. C.1. Muutokset julkaisuun 5.0.x (elinkaaren tuki päättynyt) (kuollut linkki) . Oraakkeli. Haettu 24. elokuuta 2010. Arkistoitu alkuperäisestä 4. huhtikuuta 2013. 
  20. C.1. Muutokset julkaisussa 5.1.x (tuotanto) (downlink) . Oraakkeli. Haettu 24. elokuuta 2010. Arkistoitu alkuperäisestä 4. huhtikuuta 2013. 
  21. C.1. Muutokset julkaisussa 5.5.x (tuotanto) (downlink) . Oraakkeli. Haettu 24. elokuuta 2010. Arkistoitu alkuperäisestä 4. huhtikuuta 2013. 
  22. C.1. Muutokset julkaisuun 5.6.x (kehitys) (linkki ei saatavilla) . Oraakkeli. Haettu 24. elokuuta 2010. Arkistoitu alkuperäisestä 4. huhtikuuta 2013. 
  23. [MySQL 5.6.50 (2020-10-19, Yleinen saatavuus) MySQL 5.6.50:n julkaisutiedote 19.10.2020]
  24. 1 2 MySQL 5.7.32 -julkaisutiedote 19.10.2020 . Haettu 16. tammikuuta 2021. Arkistoitu alkuperäisestä 28. helmikuuta 2021.
  25. Mitä uutta MySQL 5.1:ssä (downlink) . Käyttöpäivä: 13. elokuuta 2009. Arkistoitu alkuperäisestä 28. kesäkuuta 2009. 
  26. Yleiskatsaus MySQL 5.1:n innovaatioihin venäjäksi . Haettu 22. joulukuuta 2008. Arkistoitu alkuperäisestä 26. joulukuuta 2008.
  27. Yleiskatsaus Marian tallennusominaisuuksiin osoitteessa opennet.ru . Käyttöpäivä: 7. tammikuuta 2009. Arkistoitu alkuperäisestä 9. helmikuuta 2009.
  28. MySQL 8.0.22:n julkaisuilmoitus 19.10.2022 . Haettu 16. tammikuuta 2021. Arkistoitu alkuperäisestä 26. helmikuuta 2021.
  29. "REGEXP- ja RLIKE-operaattorit toimivat tavuittain, joten ne eivät ole monitavuisia turvallisia ja voivat tuottaa odottamattomia tuloksia monitavuisilla merkistöillä." . Käyttöpäivä: 30. heinäkuuta 2014. Arkistoitu alkuperäisestä 29. heinäkuuta 2014.

Kirjallisuus

  • V. Vaswani. MySQL: Käyttö ja hallinta = MySQL-tietokannan käyttö ja hallinta. - M . : "Piter" , 2011. - 368 s. - ISBN 978-5-459-00264-5 .
  • Steve Swaring, Tim Converse, Joyce Park. PHP ja MySQL. The Programmer's Bible 2nd Edition = PHP 6 ja MySQL 6 Bible. - M . : "Dialektiikka" , 2010. - 912 s. - ISBN 978-5-8459-1640-2 .
  • Robert Sheldon, Geoffrey Moyet. MySQL 5: peruskurssi = Beginning MySQL. - M . : "Dialektiikka" , 2007. - 880 s. - ISBN 978-5-8459-1167-4 .
  • Kuznetsov Maxim, Simdjanov Igor. MySQL esimerkillä. - Pietari. : "BHV-Petersburg" , 2008. - S. 952. - ISBN 978-5-9775-0066-1 .
  • Paul Dubois. MySQL, 3rd edition = MySQL, 3ed. - M . : "Williams" , 2006. - 1168 s. — ISBN 5-8459-1119-2 .
  • Kuznetsov Maxim, Simdjanov Igor. MySQL 5. Alkuperäinen. - Pietari. : "BHV-Petersburg" , 2006. - S. 1024. - ISBN 5-94157-928-4 .
  • Kuznetsov Maxim, Simdjanov Igor. Opetusohjelma MySQL 5. - Pietari. : "BHV-Petersburg" , 2006. - S. 560. - ISBN 5-94157-754-0 .

Linkit