taking python enterprise level?...

Philip Semanchuk philip at semanchuk.com
Wed Mar 3 14:15:26 EST 2010


On Mar 3, 2010, at 11:26 AM, mk wrote:

> D'Arcy J.M. Cain wrote:
>> I keep seeing this statement but nothing to back it up.  I have  
>> created
>> many apps that run on Python with a PostgreSQL database with a fully
>> normalized schema and I can assure you that database joins were never
>> my problem unless I made a badly constructed query or left off a
>> critical index.
>
> I too have done that (Python/PGSQL), even adding a complicated layer  
> of SQLAlchemy on top of it and have not had issue with this: when I  
> profiled one of my apps, it turned out that it spent most of its  
> computation time... rendering HTML. Completely unexpected: I  
> expected DB to be bottleneck (although it might be that with huge  
> datasets this might change).
>
> Having said that, re evidence that joins are bad: from what I've  
> *heard* about Hibernate in Java from people who used it (I haven't  
> used Hibernate apart from "hello world"), in case of complicated  
> object hierarchies it supposedly generates a lot of JOINs and that  
> supposedly kills DB performance.
>
> So there *may* be some evidence that joins are indeed bad in  
> practice. If someone has smth specific/interesting on the subject,  
> please post.

It's an unprovable assertion, or a meaningless one depending on how  
one defines the terms. You could also say "there *may* be some  
evidence that Python lists are bad in practice". Python lists and SQL  
JOINs are like any part of a language or toolkit. They're good tools  
for solving certain classes of problems. They can also be misapplied  
to problems that they're not so good at. Sometimes they're a  
performance bottleneck, even when solving the problems for which  
they're best. Sometimes the best way to solve a performance bottleneck  
is to redesign your app/system so you don't need to solve that kind of  
problem anymore (hence the join-less databases). Other times, the cure  
is worse than the disease and you're better off throwing hardware at  
the problem.

My $.02
Philip







More information about the Python-list mailing list