[python] par dotazu od zacatecnika v SQL
Dan Pressl
nu.frix na gmail.com
Čtvrtek Prosinec 28 18:17:41 CET 2017
Tak pod Honzův email se klidně podepíšu. Učit se čisté SQL je zbytečné do
doby, kdy se začne řešit výkon. A kód je s SQLAlchemy snadno udržitelný,
což dnes bývá daleko důležitější než čistý výkon.
On Dec 28, 2017 5:57 PM, "Jan Bednařík" <jan.bednarik na gmail.com> wrote:
> Ahoj,
>
> Začínat s jazkem SQL je předčasná optimalizace. Začni s ORM. Doporučil
> bych SQLAlchemy ORM nebo Django (pokud chceš dělat webové aplikace). Na
> drtivou většinu věcí ti to bude stačit. Jazyk SQL je pro běžné potřeby
> zbytečně nízkoúrovňový. Psát, testovat a udržovat kód se syrovým SQL je
> velká ztráta času.
>
> Záleží na projektu, ale když už náhodou budeš potřebovat něco, s čím si
> tyhle ORM efektivně neporadí, tak to bude vyjímečná situace. V takových
> situacích si většinou poradíš tím, že budeš trochu študovat manuály a
> googlit, a zjistíš, že to často taky jde efektivně i s ORM. A když ne, tak
> data vytaháš a zpracuješ je v Pythonním kódu. A když dat bude moc, a tohle
> efektivně taky nepůjde, tak se naučíš pracovat s SQLAlchemy Core nebo
> nastuduješ trochu toho syrového SQL.
>
> Co se týče databáze, MySQL/MariaDB bych se vyhnul obloukem. Není ACID
> (ačkoliv se tím pyšní), autocommituje změny schématu i během transakcí (cca
> 10 let stále neopravený a zřejmě neopravitelný bug). Při běžném použití tě
> to nepotrápí. Ale jakmile se projekt rozjede a začneš dělat migrace
> schematu a dat, tak tě to dřív nebo později pěkně vyjebe. Stalo se mi to v
> životě asi třikrát, z toho dvakrát na nových projektech, kdy jsme MySQL
> dali "ještě jednu šanci" protože PostgreSQL nebyla z nějakého důvodu
> jednoduše k dispozici. S ORM můžeš opustit MySQL/MariaDB relativně snadno,
> ale proč s ní vůbec začínat, když je tam (krom jiných neduhů) taková past?!
>
> Doporučil bych PostgreSQL. S tou se nedá šlápnout vedle pro jakýkoliv
> projekt. Má i zajímavé "NoSQL" fičury, jako datové typy JSON a hstore,
> které stojí za pozornost.
>
> SQLite může být taky dobrá volba, ale záleží na projektu. Její super
> fičura je snadno použitelná databáze v RAMce, což se hodí hlavně pro testy.
>
> Honza
>
>
> 2017-12-25 11:41 GMT+01:00 Lubomir Vogl <python na vogl.cz>:
>
>> Ahoj,
>>
>> potreboval bych poradit s SQL. Hraju si s MariaDB a zajimalo by me :
>>
>> - jaka je nejlepsi knihovna pro praci s SQL ? Zatim jsem nasel (PyMySQL,
>> SQLAlchemy, MySqlDb) Chtel bych se naucit neco co bude mozne pouzit i na
>> slozitejsi projekty
>> - je ORM vhodne i na jednodussi projekty ?
>> - pokud budu v SQL chtit pouzivat vice SQL dotazu, je to mozne udelat
>> pres jedno spojeni (jeden cursor) nebo je nutne mit vice otevrenych spojeni
>> ? Viz nasledujici priklad - jedno otevrene spojeni
>>
>>
>> sql = "SELECT * FROM portal WHERE typ_id = " + str(typ)
>> self.cursor.execute(sql)
>> data = self.cursor.fetchall()
>> c = self.cursor.rowcount
>> for row in data:
>> sql1 = "INSERT INTO values VALUES ('',NOW(),0," + str(row[0]) + ")"
>> try:
>> self.cursor.execute(sql1)
>> except:
>> self.db.rollback()
>> _______________________________________________
>> Python mailing list
>> python na py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
>> Visit: http://www.py.cz
>>
>
>
> _______________________________________________
> Python mailing list
> python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20171228/aff3d1a9/attachment.html>
Další informace o konferenci Python