Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #65741

Re: What is the recommended python module for SQL database access?

Path csiph.com!usenet.pasdenom.info!aioe.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed2.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail
Return-Path <rosuav@gmail.com>
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; 'installed.': 0.07; 'mysql,': 0.07; 'postgresql': 0.07; 'table.': 0.07; 'rows': 0.09; 'sql,': 0.09; 'subject:module': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; '9:20': 0.16; 'concurrency': 0.16; 'database).': 0.16; 'db2,': 0.16; 'downside': 0.16; 'for,': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'grep': 0.16; 'sqlite': 0.16; 'subject:access': 0.16; 'such,': 0.16; 'tables,': 0.16; 'threw': 0.16; 'subject:python': 0.16; 'files.': 0.16; 'wrote:': 0.18; 'looked': 0.18; 'bit': 0.19; 'app': 0.19; 'basically': 0.19; 'seems': 0.21; 'feb': 0.22; 'handles': 0.22; 'cc:addr:python.org': 0.22; 'closely': 0.24; 'days,': 0.24; 'instance,': 0.24; 'integrate': 0.24; 'issue,': 0.24; 'fairly': 0.24; "haven't": 0.24; '(or': 0.24; 'cc:2**0': 0.24; 'query': 0.26; 'gets': 0.27; 'header:In-Reply-To:1': 0.27; 'installed': 0.27; 'point': 0.28; 'specifically': 0.29; 'chris': 0.29; 'ideal': 0.29; 'words': 0.29; 'involving': 0.30; 'said,': 0.30; 'message-id:@mail.gmail.com': 0.30; 'work.': 0.31; '(which': 0.31; 'included': 0.31; 'once,': 0.31; 'option.': 0.31; 'overhead': 0.31; 'probably': 0.32; 'stuff': 0.32; 'interface': 0.32; 'option': 0.32; 'everyone': 0.33; 'subject:the': 0.34; 'could': 0.34; 'common': 0.35; 'created': 0.35; 'transaction': 0.35; 'case,': 0.35; 'no,': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'really': 0.36; 'consistent': 0.36; 'library.': 0.36; 'thanks': 0.36; 'subject:?': 0.36; 'being': 0.38; 'massive': 0.38; 'on-line': 0.38; 'pm,': 0.38; 'does': 0.39; 'called': 0.40; 'referred': 0.60; 'simple,': 0.60; 'full': 0.61; 'entire': 0.61; 'simple': 0.61; 'back': 0.62; "you'll": 0.62; "you've": 0.63; 'more': 0.64; 'situation': 0.65; 'details': 0.65; 'biggest': 0.67; 'optimized': 0.68; 'readers': 0.68; '1990s,': 0.84; 'desired?': 0.84; 'piping': 0.84; 'subject:SQL': 0.84; 'subject:recommended': 0.84; 'absolutely': 0.87; 'cutting': 0.91; 'thoroughly': 0.91; 'to:none': 0.92
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:cc :content-type; bh=MLC2C1DZAZvqYppPrTuDvMDNrFMJRwXFga4X0rvkWAs=; b=QvEPdZ2LWcELTghqkPtfTYvVlc0d9kf2IFuMnsifSwjpCMc3As3/lFkFbXpn/wrrk2 qpEdW9NRrh6fYNw744J/AME8vza4aV9e+44QIZ8+Bpm4Rn3M6VdO7hfM3IgWnj7ieuLm 08NaVVUKA16iH1mVMOfsnkVJMYnNZmXPKeHT+Qd9bNn8gMSi7hT712/z/B2yn0pW5OZz gW0KwBq7V9j9szy9DXVU0JEWJSfqmhxtVZK8Ni/J0rczwdtuZoZLTA2zuxmiiZ/mSKXv Mwj4dZwzXMuw0Nr6WDzxqRP5lR4meKYetgpwNRE+LrwIVgvDKySmwz6j7NEkbSOgJolO xFCQ==
MIME-Version 1.0
X-Received by 10.68.221.233 with SMTP id qh9mr30950889pbc.103.1391943658441; Sun, 09 Feb 2014 03:00:58 -0800 (PST)
In-Reply-To <CAFEv2m5BOdZ3PzdVfQTw-K9xJ=oWiLi5ZOUFHAkimdndDshBnQ@mail.gmail.com>
References <d2aa22af-8771-4944-ba2a-1098f9b5a735@googlegroups.com> <CAFEv2m5BOdZ3PzdVfQTw-K9xJ=oWiLi5ZOUFHAkimdndDshBnQ@mail.gmail.com>
Date Sun, 9 Feb 2014 22:00:58 +1100
Subject Re: What is the recommended python module for SQL database access?
From Chris Angelico <rosuav@gmail.com>
Cc python-list <python-list@python.org>
Content-Type text/plain; charset=UTF-8
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.15
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.6579.1391943667.18130.python-list@python.org> (permalink)
Lines 47
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1391943667 news.xs4all.nl 2884 [2001:888:2000:d::a6]:51282
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python:65741

Show key headers only | View raw


On Sun, Feb 9, 2014 at 9:20 PM, Marcel Rodrigues <marcelgmr@gmail.com> wrote:
> As Chris said, if your needs are simple, use SQLite back-end. It's probably
> already installed on your computer and Python has a nice interface to it in
> its standard library.

Already installed? I thought the point of SQLite3 being in the Python
stdlib was that Python actually included the entire engine (that's why
there's no, for instance, PostgreSQL client in the stdlib - because
there's no server; I disagree with the reasoning, but it is consistent
and valid), so you don't need _anything_ externally installed.

In any case, SQLite is ideal for really simple databasing. Back in the
1990s, I had DB2, DB2, and DB2, for all my database work. I wanted a
way to query a dictionary of English words using SQL, so I created a
DB2 database and threw ~60K rows into a table. Massive overkill for a
one-column table. These days, I could use SQLite (or more likely, just
use grep on /usr/share/dict/words - grep does everything that I wanted
SQL for, if you include piping from one grep into another), cutting
the overhead down enormously.

The biggest downside of SQLite3 is concurrency. I haven't dug into the
exact details of the pager system and such, but it seems to be fairly
coarse in its locking. Also, stuff gets a bit complicated when you do
a single transaction involving multiple files. So if you have lots of
processes writing to the same set of SQLite tables, you'll see pretty
poor performance. PostgreSQL handles that situation far better, but
has a lot more overhead, so it's a poor choice for a single simple
application. MySQL's locking/concurrency system is specifically
optimized for a model that's common for web applications: a huge
number of readers and a tiny number of writers (sometimes referred to
as Data Warehousing, because you basically stuff a warehouse full of
data and then everyone comes looking for it). For the write-heavy
model (sometimes called OLTP or On-Line Transaction Processing),
PostgreSQL will hugely outperform MySQL, thanks to its MVCC model.

Broad recommendation: Single application, tiny workload, concurrency
not an issue, simplicity desired? Go SQLite. Big complex job, need
performance, lots of things reading and writing at once, want
networked access? Go PGSQL. And don't go MySQL if PG is an option.

And definitely don't go for a non-free option (MS-SQL, DB2, etc)
unless you've looked into it really closely and you are absolutely
thoroughly *sure* that you need that system (which probably means you
need your app to integrate with someone else's, and that other app
demands one particular database).

ChrisA

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

What is the recommended python module for SQL database access? Sam <lightaiyee@gmail.com> - 2014-02-08 00:55 -0800
  Re: What is the recommended python module for SQL database access? Chris Angelico <rosuav@gmail.com> - 2014-02-08 20:04 +1100
  Re: What is the recommended python module for SQL database access? Marcel Rodrigues <marcelgmr@gmail.com> - 2014-02-09 08:20 -0200
  Re: What is the recommended python module for SQL database access? Chris Angelico <rosuav@gmail.com> - 2014-02-09 22:00 +1100
    Re: What is the recommended python module for SQL database access? Asaf Las <roegltd@gmail.com> - 2014-02-09 04:47 -0800
      Re: What is the recommended python module for SQL database access? Chris Angelico <rosuav@gmail.com> - 2014-02-10 00:14 +1100
        Re: What is the recommended python module for SQL database access? Asaf Las <roegltd@gmail.com> - 2014-02-09 05:27 -0800
          Re: What is the recommended python module for SQL database access? Chris Angelico <rosuav@gmail.com> - 2014-02-10 00:36 +1100
    Re: What is the recommended python module for SQL database access? Walter Hurry <walterhurry@gmail.com> - 2014-02-11 02:57 +0000
      Re: What is the recommended python module for SQL database access? Asaf Las <roegltd@gmail.com> - 2014-02-10 19:02 -0800
        Re: What is the recommended python module for SQL database access? Chris Angelico <rosuav@gmail.com> - 2014-02-11 14:31 +1100
          Re: What is the recommended python module for SQL database access? Asaf Las <roegltd@gmail.com> - 2014-02-10 19:45 -0800
      Re: What is the recommended python module for SQL database access? Chris Angelico <rosuav@gmail.com> - 2014-02-11 14:18 +1100
  Re: What is the recommended python module for SQL database access? Marcel Rodrigues <marcelgmr@gmail.com> - 2014-02-09 10:04 -0200
  Re: What is the recommended python module for SQL database access? Chris Angelico <rosuav@gmail.com> - 2014-02-09 23:13 +1100
  Re: What is the recommended python module for SQL database access? Tim Chase <python.list@tim.thechases.com> - 2014-02-09 08:31 -0600
  Re: What is the recommended python module for SQL database access? Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2014-02-09 10:40 -0500
  Re: What is the recommended python module for SQL database access? Chris Angelico <rosuav@gmail.com> - 2014-02-10 09:03 +1100
  Re: What is the recommended python module for SQL database access? Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2014-02-09 19:27 -0500

csiph-web