Knihovna mysqlnd
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.
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"
Jakub Vrána
:
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?
Jakub Vrána
:
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-8Diskuse je zrušena z důvodu spamu.

