Tetszik a bejegyzés? Iratkozz fel, oszd meg!


PHP alapú MySQL motor

Az imént egy érdekes MySQL Storage Engine megjelenésével találkoztam, segítségével PHP nyelven valósíthatunk meg adatbázis tároló motort. A PHP alapú MySQL Storage Engine ötlete egy kicsit őrült (hiszen a PHP meglehetősen lassú erre a feladatra), ellenben vannak olyan lehetőségek, melyek kapcsán érdekes megoldás lehet. Például egy távoli API MySQL-es reprezentációját lehet így megvalósítani.

php-based-mysql-storage-engine

Nem mondom hogy a kódot valaki próbálja meg élesben használni, ahhoz egy kicsit még kezdeti állapotban van – az irány az érdekes, amit meg lehet majd esetleg csinálni a motorral ha felnő.

Kérdés lehet persze, hogy mi a fenének hozzuk be a MySQL-t a képbe, miért ne direktben PHP-ben valósítsunk meg inkább egy feladatot, ha már. Számos oka lehet egy ilyen iránynak mely miatt hasznos lehet egy ilyen motor számos hátránya ellenére:

  1. Mindenekelőtt a PHP kód ebben az esetben egy szerver szolgáltatásba épül be, állandóan a memóriában van, szemben egy webes PHP-val, ahol egyszer lefut, és el is felejt utána mindent. Ennek már így vannak előnyei, például hogy cache-elhetőek a lekérdezésekre adott válaszok. Persze egy memcached segítségével is meg lehet valósítani ugyanezt.
  2. A MySQL szerver lehet egy különálló gépen is, és nem feltétlenül csak PHP-ből használhatjuk a kódját. Vagyis kvázi távoli eljáráshívásokat is megvalósíthatunk ezzel a megoldással. Persze vannak kész szabványaink távoli eljáráshívásra.
  3. MySQL-en belülre hozhatunk be adatokat, és azokat kombinálhatjuk “igazi” MySQL táblákkal, támaszkodva a MySQL ezirányú képességeire. Nem tűnik rossz ötletnek egy JOIN-t rábízni a MySQL ahelyett hogy saját magunk valósítanánk meg.
  4. Az előző ponthoz kapcsolódva, például az Amazon S3-at (vagy bármely más, adatbázis szerű Webes API-t) tudjuk MySQL-es lekérdezéseken keresztül elérni, összekapcsolni más táblákkal. Persze nagy csodát ne várjunk, mert jellegéből adódóan ez csak limitáltan fog működni, ellenben el lehet gondolkodni a lehetőségeken.
  5. Az absztrakció sohasem elvetendő ötlet, egy adattárolási réteget hozhatunk be az alkalmazásba – ha az jó.

Több pontot is “persze”-vel fejeztem be, így látszik, hogy ez a motor azért eléggé öszvér megoldás. Az ilyen ötletek mozdítják viszont előre az innovációt, hiszen ki tudja kinek mi jut eszébe vagy mire tudja hasznosítani majd ezt a lehetőséget.

3 Hozzászólás - “PHP alapú MySQL motor”


  • Ami szerintem zseniális elgondolás: http://developer.yahoo.com/yql/

  • Nóra: tényleg az, köszönöm a hozzászólást!

  • Jópofa dolog, kíváncsi vagyok, hogy találnak-e neki valamilyen tényleg hasznos felhasználási lehetőséget. Én inkább fejlesztés során tudom elképzelni hasznosnak, illetve a 3. pont lehet érdekes. Pl. tesztelés során tud programozottan válaszokat adni, nem kell egy előzetes állapotot beállítani.

    1. Írhatsz PHP-ben is is daemont, de ha alkalmazásszerver irányba akarsz elmenni, akkor a Quercus nyerőbb választás. Lokálba cachelni pedig nem a legoptimálisabb memcachebe (ez elosztott cache), inkább shared memory.

    4. Nem a SimpleDB-re gondoltál? (S3 storage, nem DB.)

Te mit gondolsz?