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 je zrušena z důvodu spamu.