Knihovna mysqlnd

Školení, která pořádám

Do PHP 6 se kromě jiného připravuje i zcela nová knihovna mysqlnd. Nebojte se, nejedná se o další rozšíření pro práci s MySQL (teď máme MySQL, MySQLi a PDO_MYSQL), jde o knihovnu nahrazující MySQL API. Hlavním důvodem změny je zvýšení výkonu, protože knihovna libmysql je poměrně nízkoúrovňová a pracuje se strukturami nekompatibilními s těmi, které používá PHP. Druhým důvodem je zlepšení kontroly nad knihovnou.

V PHP 6 bude možné zvolit, která knihovna se má pro MySQL rozšíření používat. Osobně se toho trochu bojím, protože by to mohlo vést k nekompatibilitám, za zvýšení výkonu to ale někomu stát bude.

Mně se myšlenka užší integrace PHP a MySQL líbí. Např. funkce mysql_query pro uložení výsledků používá API funkci mysql_store_result, která výsledky uloží na straně klienta. Pokud je pak získáváme funkcí mysql_fetch_assoc nebo podobnou, kopírují se do struktur PHP. Pokud tedy např. šablonovací systém potřebuje přímý přístup ke všem datům, jsou tato data uložena dvakrát (až do zavolání mysql_free_result). Funkce mysql_unbuffered_query zase drží výsledky na serveru. Knihovna by tomuto duplikování dat mohla zabránit. Potom by se místo funkcí query a fetch klidně všechny výsledky mohly uložit do pole, když už v paměti stejně jsou.

Jakub Vrána, Ze zákulisí, 20.12.2006, diskuse: 7 (nové: 0)

Diskuse

error414:

Prvni dojem z clanku byl ze si tu knihovnu budu moct volit v behu PHP, to asi nebude to prave ze?

halogan:

"Mě se myšlenka užší integrace" => "Mně se myšlenka užší integrace"

ikona Jakub Vrána OpenID:

Díky za upozornění, opravil jsem to.

Techi:

Já jsem teda začal fandit PDO. Radši používat kód, kterej nezávisí na konkrétní databázi. Nestačilo by vylepšit stávající PDO driver pro MySQL?

ikona Jakub Vrána OpenID:

Vylepšit ovladač nestačí, protože závisí na ovladači od MySQL. Nicméně myslqnd bude možné použít i v rámci PDO_MYSQL.

tark:

Kód nezávislý na databázi psát moc nejde, leda základní struktury... Co třeba tohle? IFNULL na MySQL, NVL na Oracle a COALESCE na PgSQL. He? ;)

Štěpán Svoboda:

Off topic: To je zajímavé, co všechno Google indexuje http://www.google.com/search?client=opera&…&oe=utf-8

Vložit komentář

Používejte diakritiku. Vstup se chápe jako čistý text, ale URL budou převedeny na odkazy a PHP kód uzavřený do <?php ?> bude zvýrazněn. Pokud máte dotaz, který nesouvisí s článkem, zkuste raději diskusi o PHP, zde se odpovědi pravděpodobně nedočkáte.

Jméno: URL:

avatar © 2005-2018 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.