Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.mixmin.net!feed.xsnews.nl!border-3.ams.xsnews.nl!xlned.com!feeder7.xlned.com!news2.euro.net!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.004 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'python.': 0.02; 'languages,': 0.04; 'subject:Python': 0.05; 'badly': 0.07; 'plenty': 0.07; 'postgresql': 0.07; 'imho.': 0.09; 'orm': 0.09; 'postgres': 0.09; 'replication': 0.09; 'sep': 0.09; 'tends': 0.09; '(where': 0.15; 'both.': 0.16; 'enough.': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'happily': 0.16; 'pgsql': 0.16; 'row': 0.16; 'say.': 0.16; 'wrote:': 0.17; 'thu,': 0.17; 'app': 0.19; 'greg': 0.22; 'posts': 0.23; 'tables': 0.23; 'tried': 0.25; 'header:In-Reply-To:1': 0.25; 'logging': 0.27; 'message-id:@mail.gmail.com': 0.27; "doesn't": 0.28; 'cases.': 0.29; 'locking': 0.29; 'locks': 0.29; 'points': 0.29; 'source': 0.29; 'probably': 0.29; "i'm": 0.29; 'framework': 0.30; 'fri,': 0.30; 'point': 0.31; 'to:addr:python-list': 0.33; "can't": 0.34; 'received:google.com': 0.34; 'generic': 0.35; 'open': 0.35; 'pm,': 0.35; 'table': 0.35; 'received:209.85': 0.35; 'there': 0.35; 'really': 0.36; 'serve': 0.36; 'but': 0.36; 'too': 0.36; 'uses': 0.37; 'being': 0.37; 'quite': 0.37; 'received:209': 0.37; 'subject:: ': 0.38; 'supports': 0.38; 'sure': 0.38; 'advice': 0.39; 'performance': 0.39; 'to:addr:python.org': 0.39; 'little': 0.39; 'header:Received:5': 0.40; 'think': 0.40; 'your': 0.60; 'easy': 0.60; 'most': 0.61; 'further': 0.61; "you'll": 0.62; 'back': 0.62; 'engines': 0.62; 'different': 0.63; 'more': 0.63; 'details,': 0.65; 'lose': 0.71; 'forth': 0.75; 'topic,': 0.78; 'donald': 0.84; 'flipping': 0.84; 'kicking': 0.84; 'unaware': 0.84; 'good,': 0.91; 'suffer': 0.91 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=17sK5k8nj4gD8aG1wnWqVtbClg+tuJTOmoxpr3fXGAw=; b=OMHpsCJxPnonDoGMhd9Z4D3wFh7Bnt7YgzWL/LxHbx3Q9YQBy8U3P6DNQigIsVs12S Wpgv6oZgeHwYXduK3kZV+9DAJL4oJW9wN8U6pKXFSSYf3CL2MaG8mvl4rL/hs0xM9XID FO8o7+nnV16QoA32/rSab175BdhUsNr7hzfgorURWp54TE4BgSlk2XBLb2lGUjaHhHM5 IzR3NPXTtAEQULgv8nHhz7T20/JFTqkhKZfTb9+48JGsEo9CqD4fS5zAmEmwyGbFEoea BJEwcXzcYocJ+kZc7Xpm1bmQQzJnmRXTugAj/iktWz4u4PYaozISaNetVtwbd3oM8h1e QJ8g== MIME-Version: 1.0 In-Reply-To: References: <5061cf25$0$29981$c3e8da3$5496439d@news.astraweb.com> <5063a179$0$29981$c3e8da3$5496439d@news.astraweb.com> <5063eba2$0$29997$c3e8da3$5496439d@news.astraweb.com> <506515F8.9020606@tysdomain.com> Date: Fri, 28 Sep 2012 14:37:21 +1000 Subject: Re: Article on the future of Python From: Chris Angelico To: python-list@python.org Content-Type: text/plain; charset=ISO-8859-1 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 43 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1348807044 news.xs4all.nl 6935 [2001:888:2000:d::a6]:49388 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:30354 On Fri, Sep 28, 2012 at 2:12 PM, Greg Donald wrote: > On Thu, Sep 27, 2012 at 10:37 PM, Wayne Werner wrote: >> the only advice I can give on that is >> just learn to use both. > > I find there's little to lose in having experience with both. > > Most every good web framework out there supports lots of different > databases through generic ORM layers.. so flipping back and forth to > see which database is better for your particular app and workload is > trivial. Learning both is good, if for no reason than that learning more tends to be advantageous. As Greg said in his other post, PGSQL is a completely open source project. That's a significant point imho. Other points to consider: * MySQL is designed for dynamic web sites, with lots of reading and not too much writing. Its row and table locking system is pretty rudimentary, and it's quite easy for performance to suffer really badly if you don't think about it. But if your needs are simple, MySQL is probably enough. PostgreSQL uses MVCC to avoid locks in many cases. You can happily read from a row while it's being updated; you'll be unaware of the update until it's committed. * Postgres has solid support for advanced features like replication. I don't know how good MySQL's replication is, never tried it. Can't say. This might be completely insignificant. * The default MySQL engine, MyISAM, doesn't do proper transaction logging etc. InnoDB is better for this, but the internal tables (where your database *structure* is maintained) are MyISAM. This imposes a definite risk. * Both engines have good support in popular languages, including (dragging this back on topic, kicking and screaming) Python. For further details, poke around on the web; I'm sure you'll find plenty of good blog posts etc. But as for me and my house, we will have Postgres serve us. ChrisA