ugrás a tartalomhoz

Megjelent a MySQL 5.0

Bártházi András · 2005. Okt. 26. (Sze), 21.06
Hétfőn, azaz október 24-én megjelent a MySQL 5.0 kiadása, sok olyan újdonsággal, melyek jelentős lépésnek számítanak a MySQL életében. Bár csak késve tudunk beszámolni az eseményről, de bízom benne, hogy így is érdeklődésre fog számottartani az a rövid áttekintés, melyben az újdonságokat veszem sorra.

MySQL 5.0

A MySQL 5.0 már eddig is elérhető, tesztelhető volt, így hogy a bevezetésemen egy kicsit pontosítsak, a hétfőn megjelent verzió újdonsága, hogy immár a fejlesztők szerint is stabil ágába lépett a MySQL ezen verziója is. Megérte várni erre a verzióra, mely jelentős újdonságaival tudásában (és nem csak egyszerűségében, gyorsaságában) is összehasonlíthatóvá tette a MySQL-t is az olyan nagyobb testvérekkel, mint a PostgreSQL, vagy akár az Oracle.

Az újdonságok közül talán a tárolt eljárásokat, a függvényeket, a nézeteket, a triggereket, a távoli adatbázisokhoz való kapcsolódást és a magas rendelkezésreállást érdemes kiemelni. Vegyük sorra ezeket a lehetőségeket!

A tárolt eljárás (stored procedures) lényege (durván), hogy kis programokat írhatunk, melyeket az adatbázisszerver fog futtatni - az alkalmazáslogikát ezáltal részben, vagy egészben az adatbázisba helyezhetjük át. Ennek több előnye lehet, talán a legfontosabbak, hogy konkrét adatforgalom nélkül, ezáltal gyorsabban és hatékonyabban tudunk műveleket is végezni az adatokon, másrészt pedig lehetővé válik, hogy az adatbázis szakértő/programozó egy jól optimalizált, csak a szükséges adatokat rendelkezésre bocsátó (biztonság) programokat írhasson, amit a kliens oldalon levő programot készítő kompakt módon felhasználhat.

A függvény (functions - a doksit lásd a tárolt eljárásoknál) a tárolt eljárásokhoz nagyon hasonló SQL nyelvi elem, a különbség annyi, hogy vissza is adhat értéket, értékeket. A függvények segítségével egyszerűen készíthetünk magunknak egyszerűbb és komplexebb új függvényeket, melyek aztán segíthetnek munkánk során. Ez főként a lekérdezéseink átláthatóbbá tételét segítik elő.

A nézet (views) egy egyszerű, de nagyon hatékony megoldás. Segítségével virtuális tábla szerű adatbázis objektumokat hozhatunk létre. Ez átláthatóbbá és akár hatékonyabbá is teheti lekérdezéseinket, továbbá lehetőséget kínálhat arra, hogy egyes felhasználóknak csak táblák egy részéhez biztosítsunk hozzáférést.

A trigger (triggers) egyes adatbázis műveletek előtt és után képesek lefuttatni SQL kifejezéseket. Magyarul: egy adott tábla esetén, ha valaki adatot szúr be, kérdez le vagy módosít (bármilyen paranccsal!), mielőtt az SQL parancs lefutna, vagy miután lefutott, opcionálisan, az adott SQL parancsot futtató szándékától függetlenül műveleteket végezhetünk. A triggerek sok célra felhasználhatóak, például lehetőséget adnak összefüggések (integritás) kezelésére, megőrzésére (mikor kitörlünk az egyik táblából egy elemet, akkor az összes többi táblából, ahol hivatkozás van erre az elemre szintén kitörölhetjük a megfelelő sorokat, stb.), adatok módosítására, automatikus kitöltésére stb.

A távoli táblák leképezése (federated tables) valójában nem más, mint egy új adattároló motor (lásd innoDB, MyIsam), ami nem helyből, hanem egy másik adatbázisból olvassa az adatokat. Bár jelenlegi verziójában nem támogatja a gyorsítótárazást (logikájából adódóan), így is nagyon hatékony lehet többgépes környezetben, ahol lehet, hogy az éppen hivatkozni kívánt adatbázisból nem hozható létre helyi másolat, csak egy helyen létezhet.

Végül a magas rendelkezésre állás (MySQL Cluster) lehet az a téma, amiről még érdemes pár szót ejteni. A magas rendelkezésre állás (szokták ötkilences rendelkezésre állásnak is hívni) 99.999%-os rendelkezésre állást jelent, vagyis azt, hogy egy évben összesen maximum 5 percig nem elérhetőek az adatbázisok. Ezt értelemszerűen nem könnyű elérni, hiszen rizikót jelenthet bármilyen hardver probléma, áramkimaradás, szoftver hiba, frissítés ideje, stb. A MySQL 5.0 egy olyan megoldást kínál, mely segítségével két vagy több gépen lesznek tárolva adataink, így az egyik gép meghibásodása és kiesése esetén is a többi tovább tudja kiszolgálni a kéréseket. Ezen felül - az adatokat a memóriában tárolva - nem csak magas rendelkezésre állást, de nagy sebességet is biztosít. Áramkimaradás esetén a lemezre írt műveleti adatok, illetve az időnkénti adatmentések segítségével gyors visszaállást is tud produkálni.

A MySQL 5.0 a fenti funkciókkal sokat lépett előre, bár azt is meg kell említeni, hogy nem mindegyik új funkció kínál teljes funkcionalitást. Az új funkciók mindazonáltal sokszor jól jöhetnek, és a MySQL dinamikus fejlődési sebességének köszönhetően a közeljövőben a hiányzó funkciók is várhatóan beépítésre kerülnek.

Bővebb információkat a MySQL fejlesztői oldala kínálhat, sok dokumentációval, cikkel, letölthető anyaggal.
 
1

Kár, hogy sokára lesz még :(

Dualon · 2005. Okt. 26. (Sze), 21.49
Majd a PHP5-tel karöltve terjed el (kb. egy időben: nagyon sokára)...

Dúalon
http://e-arc.hu/
2

Migráció

Bártházi András · 2005. Okt. 27. (Cs), 19.12
Nem tudom, de nálam folyamatban van a migráció... :) A MySQL 4.1-re is átállt a cég, a MySQL 5.0-ra is át fog.

-boogie-
3

Szavazás...

janoszen · 2005. Nov. 5. (Szo), 23.26
Ahogy így elnézem a szavazás változását, egyre többen álltak át MySQL5-re, mert egy pár napja még elenyésző volt azok száma, akik használták.
4

MySQL 5.0 a Weblabor mögött is

Bártházi András · 2005. Nov. 6. (V), 09.25
Hát, a Wish szervereken (így a Weblabor mögött is) már MySQL 5.0 van. Az átállás teljesen zökkenőmentes volt, kb. mint két Apache verzió között. Csak ajánlani tudom a régebbi verziókról a frissítést.

-boogie-
5

Gixx-bácsi

Anonymous · 2005. Nov. 18. (P), 16.28
Majd csak akkor fogok váltani MySQL 5-re, ha a szerver, ami hosztolja a cumómat, átvált 5-re a 4.0.x-ről :)

Amúgy gyanítom, hogy jóideig nem fogom kihasználni az új lehetőségeket...
6

Hát azért van hova fejlődni...

Anonymous · 2006. Jan. 4. (Sze), 22.31
A linuxvilág hozott november környékén egy cikket a mysql 5-ről. Hát... azért van hova fejlődnie, főleg mivel az alkalmazásfejlesztés támogatása miatt a tárolt eljárásoknak atombiztosaknak kell(ene) lenniük. Bár egy weboldal kevéssé használ tárolt eljárást, egy alkalmazásnak a legegyszerűbb az adatfelvitel, ha egy tárolt eljárást paraméterez. Meg persze ott a csekkolási lehetőség. Amiben például fejlődhetne, hogy legutolsó infóim szerint nem támogatja hogy egy függvény/eljárás más adatbázisbó (és talán más táblából?) olvasgasson. Ugyanez a triggerekre. Ezt mindenképp meg kéne szüntetni, mert bár biztonsági lyukat váj, sok szolgáltatás képzelhető el ezek használatára. Többek közt emiatt nem tudok MS SQL-ről MySQL-re váltani, illetve hogy a Windowsos ODBC és .NET-es konnektor működése sajnos nem tökély.

Mindazonáltal dicséretes, hogy a MySQL fejlesztői belevágtak ebbe a nagy fába. Egyszer talán a MySQL komoly opensource ellenfele lesz a MS SQL-nek. De jóis lenne...
7

liszensz

Anonymous · 2006. Feb. 7. (K), 00.56
Homályosítsatok már fel, a mysql5-el kapcsolatban mintha azt olvastam volna, hogy ez már nem teljesen ingyenes dolog?
Reho
8

Rossz a megközelítés

Bártházi András · 2006. Feb. 7. (K), 01.19
Ha a programodba szeretnéd beágyazni, akkor merülhet fel egy ilyen kérdés, illetve a MySQL kliens PHP-be fordításakor. Előbbi eset nem tipikus egy webfejlesztőnél. Második esetet pedig lerendezték a PHP fejlesztők. :)

A MySQL licence megengedi, hogy webes környezetben szolgáltatáshoz díjmentesen vegyed igénybe, ahogy korábban is tette.

-boogie-
9

mysql liszensz

Anonymous · 2006. Feb. 8. (Sze), 18.41
Köszi szépen a felvilágosítást! Olvasgattam egyébként én is egy oldalt ahol ez le volt írva, de jó volt hallani mástól is, hogy jól értettem-e :-)
10

Hiba Hiba Hiba

Anonymous · 2006. Már. 5. (V), 22.35
Átálnék én de nem megy. Php-ből lehetetlen elérni. és sajnos a weben sincs értelmes tutorial. sokaknál él a hiba, de megoldatlan maradt.
11

Volt aki már látott olyat akinek sikerült ;)

Hodicska Gergely · 2006. Már. 5. (V), 22.47
Kicsit több infó kéne a "nem megynél", ahhoz, hogy segíteni tudjunk.


Felhő
12

és nem itt

Hojtsy Gábor · 2006. Már. 5. (V), 22.49
És nem itt, hanem egy új fórum témában.