MySQL

MySQL A Mysql-képernyőkép.PNG kép leírása. Információ
Fejlesztette MySQL AB , Sun Microsystems és Oracle
Az első verzió 1994
Utolsó verzió 8.0.24 (2021. április 20)
Haladó verzió 8.0 RC1 (2017. szeptember 25)
Letét MySQL a GitHubon
Projekt állapota Folyamatos fejlődésben
Beírva C és C ++
Operációs rendszer Linux , Microsoft Windows , macOS , FreeBSD , Solaris és Unix típus
Olvassa el a formátumokat MySQL táblázat meghatározási formátum ( d )
Írásos formátumok MySQL táblázat meghatározási formátum ( d )
Nyelvek angol
típus Relációs adatbázis-kezelő rendszer ( en )
Szoftver szerver ( d )
Forgalmazási politika Ingyenes
Engedély A GNU General Public License 2. verziója és a saját licenc
Weboldal www.mysql.com

A MySQL (ejtsd: [ maj.ɛs.ky.ɛl ]) egyrelációs adatbázis-kezelő rendszer (RDBMS). Kettős GPL és saját licenc alatt terjesztik. Ez az egyiklegszélesebb körben használt adatbázis- kezelő szoftvera világon, mind a nagyközönség (főleg webalkalmazások), mind a szakemberek részéről, az Oracle , a PostgreSQL és a Microsoft SQL Server versenyben.

Az elnevezés az első név a lánya társ-alkotója Michael Widenius , My  (sv) (ejtsd [ én ]). Az SQL a strukturált lekérdezési nyelvre , a használt lekérdezési nyelvre utal .

A MySQL AB- t megvásárolták 2008. január 16a Sun Microsystems-től 1 milliárd dollárért . 2009-ben a Sun Microsystems- t megvásárolta az Oracle Corporation , és a két versengő terméket, az Oracle Database-t és a MySQL- t egyetlen vállalat kezébe adta . Ezt a felvásárlást az Európai Bizottság engedélyezte 2010. január 21.

Mivel 2009. május, létrehozója, Michael Widenius létrehozta a MariaDB-t (Maria második lánya keresztneve), hogy nyílt forráskódú projektként folytassa a fejlesztését .

Jellemzők

A MySQL egy relációs SQL adatbázis- kiszolgáló, amelyet a nagy olvasási teljesítmény szem előtt tartásával fejlesztettek ki, ami azt jelenti, hogy inkább a már meglévő adatok kiszolgálására irányul, mint a gyakori és rendkívül biztonságos frissítésekre. Ez több szálon és több felhasználós.

Ez ingyenes , nyílt forráskódú szoftver , a fejlett kettős licenc alatt attól függően, hogy van elosztva a szabad termék vagy egy szabadalmazott termék. Ez utóbbi esetben a licenc díjas, különben a GNU General Public License (GPL) érvényes. A MySQL kódot integráló vagy a telepítés során a MySQL-t integráló szoftvereknek tehát ingyeneseknek kell lenniük, vagy fizetett licencet kell szerezniük. Ha azonban az adatbázis elkülönül a saját szoftvertől, amely csak harmadik fél API-kat használ (pl. C # vagy php formátumban ), akkor nincs szükség fizetett MySQL licenc beszerzésére. Ez a fajta kettős engedélyezés által használt egyéb termékek, mint például a keret a szoftverfejlesztés Qt (egyes változatoknál előtt 4,5).

Támogatott operációs rendszerek

A MySQL számos különböző operációs rendszeren fut , beleértve az AIX , IBM i-5, BSDi , FreeBSD , HP-UX , Linux , Mac OS X , NetWare , NetBSD , OpenBSD , OS / 2 Warp, SGI IRIX , Solaris , SCO OpenServer , SCO UnixWare , Tru64 Unix, Windows .

Az adatbázisok a C , C ++ , VB , VB .NET , C # , Delphi / Kylix , Eiffel , Java , Perl , PHP , Python , Windev , Ruby és Tcl programozási nyelvek segítségével érhetők el  ; Egy adott API áll rendelkezésre mindegyik. A MyODBC nevű ODBC interfész is elérhető. A Java-ban a MySQL átláthatóan használható a JDO standarddal .

Támogatott számítógépes nyelvek

A MySQL két számítógépes nyelvet támogat , az SQL lekérdezési nyelvet és az SQL / PSM (Persistent Stored Modules), az SQL szabványosított eljárási kiterjesztését, amely az SQL: 2003 szabvány részét képezi. A MySQL 5. verziójában bevezetett SQL / PSM lehetővé teszi az SQL lekérdezések és az eljárási utasítások (ciklusok, feltételek stb.) Kombinálását az adatbázis-kiszolgálón (objektumkiszolgálón) tárolásra szánt összetett folyamatok létrehozása érdekében, mint pl. tárolt eljárások vagy triggerek .

használat

A MySQL a LAMP kvartett része  : Linux , Apache , MySQL, PHP . WAMP (Windows) és MAMP (Mac OS) változataihoz is tartozik .

A PHP / MySQL házaspárt a weboldalak széles körben használják, és a webhosztok többsége kínálja . A weboldalak több mint fele Apache- on fut , amelyet leggyakrabban a PHP-vel és a MySQL-lel együtt használnak.

Történelmi

A Wikipédia 2012 végéig használta a MySQL-t ( ma a MariaDB- t használják), sok vállalat, köztük a Google , a Yahoo! , A YouTube , az Adobe , az Airbus , az Alstom , a Crédit Agricole , az AFP , a Reuters , a BBC News , az Ernst & Young , az Alcatel-Lucent továbbra is használja.

SQL verzió

A MySQL támogatja az SQL2 szabványt ( RIGHT JOIN és LEFT JOIN használata ), ennek a szabványnak való megfelelés biztosítja, hogy az megfeleljen a megfelelő szabványosított lekérdezéseknek. A legfrissebb SQL- szabványok funkcionalitása azonban még nincs minden megvalósítva, és egyesek nem tartják be az ajánlott szintaxist (például összefűzés), megakadályozva a különböző DBMS-ek közötti lekérdezések interoperabilitását .

Jellemzők

Két fő motor van jelen a MySQL-ben: a MyISAM és az InnoDB.

A MyISAM az InnoDB-vel ellentétben nem támogatja a tranzakciókat vagy az automatikus tábla integritását, nem olyan alkalmazásokhoz készült, ahol az adatok konzisztenciája kritikus; teljesítménye azonban alkalmassá teszi olyan alkalmazásokhoz, amelyek megvalósításához egyszerű és olcsó adatbázisra van szükség.

A felhasználók számára a phpMyAdmin egy webes eszköz, amely gyakran elérhető a MySQL adatbázisok létrehozására, feltöltésére és használatára.

Átjárhatóság

Az SQL adatbázisok és a táblázatok táblái mindkét irányban jól kommunikálnak (csak numerikus adatok és karakterláncok esetében) a CSV formátum segítségével . Biztonsági mentési és visszaállítási formátumok léteznek, SQL parancsok formájában, valamint XML formátumban .

Termelési felhasználás

A nyitott eszközök használata iránti érdeklődés arra késztette néhány bankintézetet is , mint a Crédit Mutuel , a Crédit Agricole , a Crédit Lyonnais és a Kanadai Fejlesztési Bank, hogy a MySQL-t vegyék fel belső IT-termékeik katalógusába.

Megnevezés

A MySQL egy svéd cég, a MySQL AB munkája , amelyet David Axmark , Allan Larsson és Michael "Monty" Widenius alapított .

A MySQL név My , Michael "Monty" Widenius társalapító lányának és az SQL rövidítésnek a kombinációjából származik (a legújabb angol nyelvű dokumentáció szerint). Másrészt az alap mappa és a fejlesztők által használt könyvtárak nagy része az előtagot használja My.

A MySQL logó (a delfin ) Sakila nevét a MySQL készítői választották ki verseny alapján. Ambrose Twebaze, Szváziföld fejlesztője küldte be . Szerint Ambrose, a neve Sakila meríti eredete swati , a helyi nyelven Szváziföld .

Történelmi

A MySQL első verziója megjelent 1995. május 23. Ez volt az első személyes használatra létrehozott belül mSQL alapján az alacsony ISAM nyelven, amelyet ők talált túl lassú és túl merev. Létrehoztak egy új SQL felületet, amely ugyanazzal az API-val rendelkezik, mint az mSQL.

A MySQL a GPL licenc alatt van a 3.23.19 verziótól (2000. június)

2003-ban a MySQL AB és az SAP AG megállapodást köt. Az eredmény neve MaxDB lesz . Ez az SAP rendszer (SAP DB) MySQL-be ​​történő integrálásának eredménye.

A 2009. április 20, Az Oracle Corporation bejelenti, hogy 7,4 milliárd dollárért megvásárolja a Sun Microsystems rendszert, félelmet keltve abban, hogy a MySQL eltűnik - vagy legalábbis tovább nem fejlődik - az Oracle , az Oracle Corporation DBMS-je javára . A MySQL azonban korántsem rendelkezik az Oracle összes funkcionalitásával, ezért a vállalat éppen ellenkezőleg úgy tekinthet rá, mint egy ingyenes termékre, amely elbagatellizálja az SQL használatát, és így előkészíti jövőbeli eladásait.

Adatbázis-motorok tartoznak

A MySQL egyik sajátossága, hogy több motort kezelhet egyetlen adatbázisban. Minden tábla egy másik motort használhat az adatbázisban. Ennek célja az egyes táblák használatának optimalizálása.

Itt vannak a MySQL különböző történelmi motorjai:

Nyílt forráskódú tároló motorok:

Kereskedelmi tároló motorok:

Több tárolómotor egyszerű használata egyetlen adatbázisban a MySQL segítségével hatalmas rugalmasságot tesz lehetővé az adatbázis optimalizálásában: a MyISAM-ot olyan adatok tárolására használjuk , amelyek nem túl érzékenyek és gyors hozzáférést igényelnek az adatokhoz (például egy ' felhasználók), InnoDB a fejlett funkciókért és az érzékenyebb adatokért (például a banki tranzakciók listájához), MEMORY azokhoz az adatokhoz, amelyek elveszhetnek a gép újraindításakor és gyakran módosíthatók (például sorban lévő felhasználók listája), ARCHIVE egy kevés olvasást igénylő előzmények (vagy naplók) ...

Kiszolgálófürtök

Két módszer létezik a terhelés elosztására a MySQL Server alatt futó gépek sorozatán. Ezek a módszerek lehetővé teszik a redundancia biztosítását (ha egy gép meghibásodik, mások átvehetik), javíthatják a keresések sebességét (SELECT), vagy akár létrehozhatnak egy gépet, amely elmenti az adatokat.

Replikáció

A MySQL a 3.23.15 verzió óta képes egy viszonylag könnyen beállítható egyirányú replikációs rendszert használni : egy master szervert, amely tartalmazza a forrás adatbázist és megkapja az összes módosítást, és egy slave szervert, amely tartalmaz egy adatbázist egy azonos felépítésű, és amely csatlakozik a fő szerverhez új módosítások beolvasása és adatbázisainak frissítése érdekében. A mesternek több rabszolgája lehet, és egy rabszolga viszont egy másik rabszerver mesterévé válhat, ezzel elérve a replikációs láncot.

Az összes módosítást (UPDATE, DELETE, INSERT ...) el kell küldeni a master szervernek, és automatikusan tükröződnek a slave-eken, de a gyakran több és erőforrásigényesebb keresési kérés (SELECT) végrehajtható egy vagy több rabszolga. Mivel a módosítási kérelmeket át kell irányítani a fő szerverre, az alkalmazás kialakításának alkalmazkodnia kell az architektúrához: a programozó két kapcsolatot nyit meg a programjában, egyet a fő szerveren, amelyeken végrehajtja az összes módosítását és egyet a szolga szerver, ahol minden keresését lefuttatja.

Ez a rendszer azonban csak korlátozott redundanciát engedélyez:

A legtöbb esetben rendszergazda lépéseket tesz a rend helyreállításához, és az alkalmazás ez idő alatt leáll. Ezután a megoldás iránti érdeklődés megjelenik a biztonsági másolatok kezelésében, mivel az alkalmazás, amely csak a fő szervert használja, nem áll le, ha a slave biztonsági szerver meghibásodik, de az adatbázis biztonsági másolata rendelkezésre áll abban az esetben, ha a a master szerver lemegy.

Ha csomópontot szeretne hozzáadni, akkor azt a lánc végén kell elhelyeznie rabszolgaként, és módosítania kell az alkalmazást az új csomópont kezeléséhez.

A MySQL szempontjából minden csomópontot külön kezelnek, így a programozó feladata a terheléselosztás kezelése.

Memcached kiterjesztés, amely lehetővé teszi a NoSQL hozzáférését az InnoDB motor adataihoz

A "memcached" felület a MySQL kiterjesztése az 5.6-os verzió óta a szerveren futó rezidens szolgáltatás formájában, amely lehetővé teszi az InnoDB motor által tárolt adatok gyorsítótárba helyezését . Előnye a teljesítménynövekedés (az adatok a memória gyorsítótárában vannak), valamint az adatok NoSQL- stílusú felületen keresztüli elérésének és módosításának lehetősége (az adatokhoz stílus-szintaxis használatával történő hozzáférés @@get key), lehetővé téve a fájl értelmezésének idejét. lekérdezés a lekérdező elemző által.

MySQL Klaszter

A MySQL a 4.1-es verzió óta és az NDB tárolómotornak köszönhetően képes kezelni egy teljes kiszolgálófürtöt. Felépítése az adatok duplikációján alapul, vagyis minden csomópont egy csomópont-csoport része lesz, amelyek mind a teljes adatbázist birtokolják.

Az egyes csomópontokban felállított protokoll gondoskodik az egyes tranzakciók címzéséről a fürt különböző érintett csomópontjain. Legalább két gépre van szükség egy MySQL- fürtöző megoldás és egy olyan gép létrehozására (amely maga is integrálhatja a MySQL-t) a terheléselosztó szerepe a kérelmek átirányításával a rendelkezésre álló és a legkevésbé elfoglalt csomópontokra.

A keresési kérelmek (SELECT) gyorsabbak lesznek, de az adatok módosításakor (például egy UPDATE, DELETE vagy INSERT kérés például) az összes csomóponton végrehajtásra kerülnek, amelyek blokkolják a fürtöt a művelet során.

A replikációs rendszerhez képest javul a redundancia: ha egy csomópont meghibásodik, akkor a terhelést a többi csomópont automatikusan átveszi.

Új csomópont hozzáadása úgy történhet, hogy nem kell újraosztani az adatbázist, elegendő, ha a fürt felismeri, és egy csomópont újraindítása a fürt újraindítása nélkül is elvégezhető.

A MySQL szempontjából minden csomópont egy készlet része, amelyet egyetlen gépként lehet felismerni. A programozó számára be kell programoznia az alkalmazását, hogy kommunikáljon a terheléselosztóval.

Ez a megoldás ideális, ha az adatok elérhetősége és biztonsága kritikus kérdés, és amikor az íráshoz műszaki particionálás szükséges. A valós idejű funkciókkal és az aszinkron programozási API-val párosítva az NDB Cluster elsősorban a telekommunikációs piac követelményeivel foglalkozik.

Megjegyzések és hivatkozások

  1. Változások a MySQL 8.0.24-ben (2021-04-20, Általános rendelkezésre állás)  " ,2021. április 20
  2. MySQL 8.0 RC1 - Fénypontok  "
  3. (hu) DB-motorok rangsorolása
  4. (in) A Sun megszerzi a MySQL-t , blogs.mysql.com
  5. EU törli az Oracle felvásárlását a Sun-tól , a Reuters
  6. (en) Az Európai Bizottság feltétel nélkül jóváhagyja az Oracle Sun , Oracle felvásárlását
  7. https://www.mysql.fr/products/
  8. http://bazaar.launchpad.net/~mysql/mysql-server/5.5/view/head:/sql/sql_parse.cc#L869
  9. (en) http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=34135 .
  10. Wikipedia elhagyja a MySQL-t a MariaDB silicon.fr javára 2012. december
  11. (in) MySQL :: MySQL ügyfelek által ipar
  12. (en) http://www.scriptol.com/programming/mysql.php
  13. http://dev.mysql.com/doc/refman/5.0/fr/join.html
  14. http://sqlpro.developpez.com/cours/sqlaz/fonctions/
  15. “  siteduzero.com/tutoriel-3-3160…  ” ( ArchívumWikiwixArchive.isGoogle • Mit kell tenni? ) .
  16. „  MySQL 5.5 kézikönyv: A MySQL előzményei  ” .
  17. http://www.oracle.com/us/corporate/press/1904335
  18. "  Hogyan készüljek fel a MySQL 5.7 frissítésre  " , a digitalocean.com címen ,2016.
  19. (in) "  Mi az új MySQL 8.0? (Általánosan elérhető)  ” , a MySQL Server Blogon ,2018. április 19(megtekintés : 2020. szeptember 7. ) .
  20. Cikk Az Oracle 7,4 milliárd dollárért vásárolja meg a Sun-t az O1Net.com-on
  21. http://dev.mysql.com/doc/refman/5.0/fr/replication-intro.html .
  22. „  NoSQL to InnoDB with Memcached  ” .
  23. http://dev.mysql.com/doc/refman/5.0/fr/mysql-cluster-overview.html

Lásd is

Bibliográfia

Kapcsolódó cikkek

Kezelési, adminisztrációs és tervezési eszközök a MySQL számára