[python] praca s textom
superman
feed na centrum.cz
Pondělí Červen 23 03:00:32 CEST 2008
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
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
Další informace o konferenci Python