Jasně, že nové mysqli rozhraní to umí, ale mysql ne a nikdy to neumělo. Navíc prepared statement neuměla ani MySQL vůbec, to nebyl problém jenom rozhraní. MySQL je v podstatě hloupoučká "databáze", na kterou v poslední době bylo nalepeno zdání některých featur skutečné databáze, a prepared statement je jedna z věcí, kterou MySQL moc dlouho nezná, ještě se to se to na MySQL leskne novotou. Tudíž MySQL neměla pro prepared statement ani API, ani s nimi server/client protokol nepočítal.
To co různá high level db API nabízela pro MySQL jako "prepared statement" nebylo nic jiného, než že se počkalo na parametry, složil se z SQL dosazením za otazníky parametry a do MySQL se poslal skutečný dotaz. Vezměte laskavě v úvahu, že naprostou většinu své existence MySQL neuměla ani prepared statement, ani transakce, ba ani referenční integritu, nebo znakové sady řetězců. Všechno je to relativně záležitost posledních let, a že to je spíše nalepovák, než integrální součást, to si pište. A výkon tomuto nalepovacímu stylu přesně odpovídá. Ale zpět: Nebál bych se toho, že by prepared statement zhoršoval výkon databáze, to je naprostý nesmysl. A pokud ano, tak se jedná v nejhorším katastrofickém případě asi tak o 0,0001% zpomalení, tudíž zcela zanedbatelné a věnoval bych se jiným článkům řetězu v databázi, které mají rozhodně významný vliv. Jinak pro jistotu: Nemám nic proti MySQL (a pokud ano, tak pouze stran její licence, a její předraženosti, který naprosto neodpovídá užitné hodnotě poměru cena/kvalita). Má své místo, ale pro představu, nedávno mě napadlo vytvořit identickou databázi s identickou datovou strukturou nad MySQL a nad Sybase ASA. Sybase ASA, což je na rozdíl od MySQL skutečná profesionální databáze zhruba se systémovými nároky a požadavky rovnající se MySQL - byla běžně 10x rychlejší v databázových operacích, než MySQL. A to ještě Sybase ASA není nic moc v databázovém světě. Miloslav Ponkrác Jan Kundrát napsal(a): > superman wrote: >> Jinak odpověď je to také otázkou zvyku. MySQL velmi dlouho prepared >> statement vůbec nepodporovala, a mysql rozhraní v PHP je dokonce >> vůbec nepodporuje ani dnes, prostě je vůbec nejde zapsat, není na to >> API. > > Vypada to, ze minimalne "nove mysql api" (mysqli) to umi, viz napr. > http://cz.php.net/manual/en/mysqli-stmt.bind-param.php > > Blesmrt, > -jkt > > ------------------------------------------------------------------------ > > _______________________________________________ > Python mailing list > [email protected] > http://www.py.cz/mailman/listinfo/python _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
