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.bedna...@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 <pyt...@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@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > > > _______________________________________________ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > >
_______________________________________________ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz