Path: csiph.com!usenet.pasdenom.info!news.albasani.net!newsfeed.freenet.ag!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.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'socket': 0.05; 'postgresql': 0.07; 'stack.': 0.07; 'scripts': 0.09; 'happens.': 0.09; 'processing,': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'restriction': 0.09; 'sqlite': 0.09; '"import': 0.16; 'fits': 0.16; 'localhost': 0.16; 'received:80.91.229.3': 0.16; 'received:plane.gmane.org': 0.16; 'sqlite3': 0.16; 'tcp': 0.16; 'later': 0.16; 'wrote:': 0.17; 'stefan': 0.17; '>>>': 0.18; '(or': 0.18; 'pipe': 0.22; 'external': 0.24; 'header:In-Reply-To:1': 0.25; 'header:User- Agent:1': 0.26; 'fit': 0.26; 'am,': 0.27; 'andrew': 0.27; 'header:X-Complaints-To:1': 0.28; 'hosting': 0.28; 'cgi': 0.29; 'host.': 0.29; 'locking': 0.29; 'sites.': 0.29; 'though.': 0.29; 'websites.': 0.29; 'connection': 0.30; 'writes': 0.30; '(and': 0.32; 'goes': 0.33; 'received:com.au': 0.33; 'true.': 0.33; 'problem': 0.33; 'to:addr:python-list': 0.33; 'server': 0.35; 'received:org': 0.36; 'but': 0.36; 'received:au': 0.36; 'client': 0.36; 'why': 0.37; 'moment': 0.37; 'quite': 0.37; 'subject:: ': 0.38; 'instead': 0.39; 'performance': 0.39; 'to:addr:python.org': 0.39; 'header:Received:5': 0.40; 'most': 0.61; 'high': 0.61; 'subject:...': 0.63; 'windows)': 0.84; 'received:110': 0.96 X-Injected-Via-Gmane: http://gmane.org/ To: python-list@python.org From: Lie Ryan Subject: Re: Vote tallying... Date: Sat, 19 Jan 2013 22:58:17 +1100 References: <50F8906D.9040203@r3dsolutions.com> <50F9518E.3040509@r3dsolutions.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Gmane-NNTP-Posting-Host: 110-175-240-90.static.tpgi.com.au User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 In-Reply-To: <50F9518E.3040509@r3dsolutions.com> 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: 30 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1358596713 news.xs4all.nl 6875 [2001:888:2000:d::a6]:33201 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:37083 On 19/01/13 00:43, Andrew Robinson wrote: > On 01/18/2013 08:47 AM, Stefan Behnel wrote: >> Andrew Robinson, 18.01.2013 00:59: >>> I have a problem which may fit in a mysql database >> Everything fits in a MySQL database - not a reason to use it, though. >> Py2.5 >> and later ship with sqlite3 and if you go for an external database, >> why use >> MySQL if you can have PostgreSQL for the same price? > MySQL is provided by the present server host. It's pretty standard at > web hosting sites. > It works through "import MySQLdb" -- and it means an IP call for every > action... That is not quite true. With most client libraries, including MySQLdb, connection to localhost goes through a local unix socket (or named pipe in Windows) instead of the TCP stack. > But > it wants to lock the entire database against reads as well as writes > when any access of the database happens. Which is bad... Which is the same restriction as when using XML/JSON. What it means by locking the entire database is that an sqlite database can only be read/written by a single program at any moment in time. For batch processing, locking the entire database is never going to be a problem; for CGI scripts (and their variants), it may be a performance bottleneck for extremely high volume websites.