Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed4.news.xs4all.nl!xs4all!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.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'python,': 0.02; 'subject:not': 0.03; 'url:pypi': 0.03; 'bits': 0.09; 'implements': 0.09; 'subject:Why': 0.09; 'subject:module': 0.09; 'url:github': 0.09; 'whichever': 0.09; 'api': 0.11; 'cc:addr:python-list': 0.11; 'python': 0.11; 'django': 0.11; '[1].': 0.16; '[2].': 0.16; 'adapter': 0.16; 'ancillary': 0.16; 'bug,': 0.16; 'for,': 0.16; 'notably': 0.16; 'ought': 0.16; 'suspicion.': 0.16; 'throughput': 0.16; 'sat,': 0.16; 'language': 0.16; 'fix': 0.17; 'wrote:': 0.18; 'written': 0.21; 'feb': 0.22; 'code,': 0.22; 'email addr:gmail.com>': 0.22; 'cc:addr:python.org': 0.22; 'aspect': 0.24; 'driver': 0.24; 'url:dev': 0.24; 'cc:2**0': 0.24; '>': 0.26; 'header:In-Reply-To:1': 0.27; 'chris': 0.29; '[1]': 0.29; 'thus': 0.29; '[2]': 0.30; 'message-id:@mail.gmail.com': 0.30; 'url:mailman': 0.30; 'doc': 0.31; 'libraries': 0.31; 'compatible': 0.32; 'option': 0.32; 'another': 0.32; 'open': 0.33; 'says': 0.33; 'url:python': 0.33; 'guess': 0.33; 'could': 0.34; 'except': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'version': 0.36; 'disk': 0.36; 'oracle': 0.36; 'url:listinfo': 0.36; 'subject:?': 0.36; 'url:org': 0.36; 'las': 0.37; 'performance': 0.37; 'pm,': 0.38; 'does': 0.39; 'skip:p 20': 0.39; 'url:mail': 0.40; 'most': 0.60; 'url:5': 0.61; 'developed': 0.63; 'pick': 0.64; 'to:addr:gmail.com': 0.65; 'life': 0.66; 'between': 0.67; 'compliant': 0.68; 'obvious': 0.74; '10:32': 0.84; 'easier,': 0.84; 'presumably': 0.84; "they'd": 0.84; 'thing...': 0.84; 'differences': 0.93; 'confirms': 0.95 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 :cc:content-type; bh=1dXHLZtp3VPRBpOEwrqsDjzISIrvnPOTmvEtjbmiqH0=; b=AIgiO4Cjo31q+ESPK+hRd9vRsmSlzh3PKP/icug/W/d3SeNCiA7bF/WYETaIi//GaR SCa+P9pA0fbFZXzWi1MnCb2G72VnQXFIp4W/Lc3DcImF+gJED0wJ2iw5mY32WJZQHIWS dIA04YRbPSye1+ErrnqQmhRCDtxGiatHxLMeWrBPOTMoW1rp9TzX/Hni2vuzy/s72joL 020hAkCdGYslx98mNq79vOO9VG9Ua5RT1J/J0Rz1+gGdAXCjD29aYZ2z7JtrztPgFFlO PZZEXFEsZZeYkiP46D8Ie9qaiiRc7u8a5YsUt6CpCW+iyrUTkJlq3AwiFI/nMBr7MEvU auKQ== MIME-Version: 1.0 X-Received: by 10.182.48.233 with SMTP id p9mr544048obn.44.1391942405695; Sun, 09 Feb 2014 02:40:05 -0800 (PST) In-Reply-To: <58c461a7-bf08-4258-af29-2b1d7778a85c@googlegroups.com> References: <429f41e0-7fe8-4792-82f2-e438917a3add@googlegroups.com> <145766f5-6e5f-40c7-be92-3adbf1015731@googlegroups.com> <58c461a7-bf08-4258-af29-2b1d7778a85c@googlegroups.com> Date: Sun, 9 Feb 2014 08:40:05 -0200 Subject: Re: Why use _mysql module and not use MySQLdb directly? From: Marcel Rodrigues To: Asaf Las Content-Type: multipart/alternative; boundary=047d7b66f0bda3aede04f1f6d879 Cc: python-list 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: 139 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1391942408 news.xs4all.nl 2858 [2001:888:2000:d::a6]:41527 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:65737 --047d7b66f0bda3aede04f1f6d879 Content-Type: text/plain; charset=UTF-8 Another option is PyMySQL [1]. It's developed in the open at GitHub [2]. It's pure Python, compatible with both Python 2 and Python 3. It's DB-API 2 compliant. It also implements some non-standard bits that are present in MySQLdb, in order to be compatible with legacy code, notably Django (personally, I consider the use of non-standard API from a DB adapter a bug, but while the big projects don't fix it, we have to work around it). [1] https://pypi.python.org/pypi/PyMySQL [2] https://github.com/PyMySQL/PyMySQL 2014-02-08 10:09 GMT-02:00 Asaf Las : > On Saturday, February 8, 2014 1:42:30 PM UTC+2, Chris Angelico wrote: > > On Sat, Feb 8, 2014 at 10:32 PM, Asaf Las wrote: > > > > > Hi Chris > > > The doc says > > > https://pypi.python.org/pypi/mysql-connector-python/1.1.5 > > > MySQL driver written in Python which does not depend on MySQL C > > > client libraries and implements the DB API v2.0 specification > (PEP-249). > > > > Ah. And that links to dev.mysql.com, so it's presumably the same > > thing... would be nice if they'd say that on their own site. That's > > what I was looking for, anyhow. Confirms the suspicion. > > > > There may well be performance differences between pure-Python > > implementations and ones that go via C, but having used a > > pure-high-level-language implementation of PostgreSQL's wire protocol > > (granted, that was Pike, which is a somewhat higher performance > > language than Python, but same difference), I can assure you of what > > ought to be obvious anyway: that performance is dominated by the > > server's throughput and thus (usually) by disk speed. So it's going to > > be pretty much the same with all of them; look for ancillary features > > that might make your life easier, otherwise pick whichever you like. > > > > ChrisA > > Hmmm, they say : > > http://dev.mysql.com/doc/connector-python/en/connector-python-introduction.html > > "MySQL Connector/Python enables Python programs to access MySQL databases, > using an API that is compliant with the Python DB API version 2.0. It > is written in pure Python and does not have any dependencies except for > the Python Standard Library..." > > i guess with Oracle connector there could be one advantage - they will > try to be most compliant to their product in every aspect as they would > raiser promote their DB instead of discouraging from it. > > /Asaf > -- > https://mail.python.org/mailman/listinfo/python-list > --047d7b66f0bda3aede04f1f6d879 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Another option is PyMySQL [1]. It's developed in the o= pen at GitHub [2]. It's pure Python, compatible with both Python 2 and = Python 3. It's DB-API 2 compliant. It also implements some non-standard= bits that are present in MySQLdb, in order to be compatible with legacy co= de, notably Django (personally, I consider the use of non-standard API from= a DB adapter a bug, but while the big projects don't fix it, we have t= o work around it).

[1] https://pypi.pytho= n.org/pypi/PyMySQL
[2] https://github.com/PyMySQL/PyMySQL


2014-02-08 10:09 GMT-02:00 Asaf Las <ro= egltd@gmail.com>:
On Saturday, February 8, 2014 1:42:30 PM UTC+2, Chris Angelico wrote:
> On Sat, Feb 8, 2014 at 10:32 PM, Asaf Las <r...@gmail.com> wrote:
>
> > Hi Chris
> > The doc says
> > https://pypi.python.org/pypi/mysql-connector-python/= 1.1.5
> > MySQL driver written in Python which does not depend on MySQL C > > client libraries and implements the DB API v2.0 specification (PE= P-249).
>
> Ah. And that links to dev.mysql.com, so it's presumably the same=
> thing... would be nice if they'd say that on their own site. That&= #39;s
> what I was looking for, anyhow. Confirms the suspicion.
>
> There may well be performance differences between pure-Python
> implementations and ones that go via C, but having used a
> pure-high-level-language implementation of PostgreSQL's wire proto= col
> (granted, that was Pike, which is a somewhat higher performance
> language than Python, but same difference), I can assure you of what > ought to be obvious anyway: that performance is dominated by the
> server's throughput and thus (usually) by disk speed. So it's = going to
> be pretty much the same with all of them; look for ancillary features<= br> > that might make your life easier, otherwise pick whichever you like. >
> ChrisA

Hmmm, they say :
http://dev.mysql.com/doc/connector-pytho= n/en/connector-python-introduction.html

"MySQL Connector/Python enables Python programs to access MySQL databa= ses,
using an API that is compliant with the Python DB API version 2.0. It
is written in pure Python and does not have any dependencies except for
the Python Standard Library..."

i guess with Oracle connector there could be one advantage - they will
try to be most compliant to their product in every aspect as they would
raiser promote their DB instead of discouraging from it.

/Asaf
--
https://mail.python.org/mailman/listinfo/python-list

--047d7b66f0bda3aede04f1f6d879--