各位玩蛇的大佬都知道,使用python連接數(shù)據(jù)庫是很平常的操作,而Django、各種ORM等模塊底層也必須用到這些數(shù)據(jù)庫依賴,但是MySqldb、mysql_connector、pymysql、OurSQL、mysqlclient是不是有點(diǎn)傻傻分不清,使用的時(shí)候到底應(yīng)該選哪個(gè)?感覺蒙蒙的,下面就簡(jiǎn)單說一下這些模塊的區(qū)別,以及現(xiàn)狀。
MySQL-Python
這里十分不推薦MySQL-Python,首先吐槽下MySQL-Python也就是MySqlDb。
1、環(huán)境不好安裝
特別是windows,(ubuntu黨請(qǐng)繞行)因?yàn)橥耆怯胏實(shí)現(xiàn)的,所以必須安裝了mysql,才能裝上,需要mysql的底層庫,裝這個(gè)模塊就得裝個(gè)mysql,多霸道。當(dāng)然在linux,你可以只把mysql的這個(gè)庫搞過來,就可以用了,但是折騰過好幾個(gè)windows環(huán)境后,對(duì)這個(gè)東西實(shí)在是深痛惡覺。
2、不支持py3
現(xiàn)在MySQL-Python不支持py3,當(dāng)然據(jù)說可以打補(bǔ)丁,以某種神奇方式使用,因?yàn)榭隙ㄓ械疤鄣拇笈v鼓,想折騰的小伙伴可以移駕google研究下,但是還是不推薦。
說說優(yōu)點(diǎn),不得不說的是,這個(gè)模塊對(duì)比其他mysql連接模塊穩(wěn)定而且快速(雖然我并沒有感覺到),但是底層純用c實(shí)現(xiàn)的,肯定快,而且存在這么多年了,穩(wěn)定是必須的。
mysqlclient
相信這個(gè)模塊大家應(yīng)該用的或者聽說的比較少,但是這個(gè)模塊也是實(shí)實(shí)在在的數(shù)據(jù)庫連接模塊,這個(gè)是從MySQL-Python fork出來的,所以也是純c編寫,速度一流,穩(wěn)定性一般,支持python3.3,這個(gè)的維護(hù)者和pymysql是同一群人哦。
OurMysql
這個(gè)同樣是由純c編寫的數(shù)據(jù)庫連接模塊,但是依然不支持py3.看到作者說2012.6.5支持,目測(cè)是坑了,沒用過這個(gè)模塊,不做介紹。不過如果對(duì)數(shù)據(jù)庫連接速度有極高要求的小伙伴,可以摸索用一下這個(gè)。
MySQL-Connector-Python
這個(gè)模塊和上面c編寫的就截然不同了,這個(gè)模塊完全由純python編寫,血統(tǒng)純正,也就是由此會(huì)比上面的三個(gè)模塊慢,但是這個(gè)模塊有個(gè)好爸爸,是由oracle所持有,而且傲嬌的oracle沒有把這個(gè)模塊放到pypi,所以你懂得,安裝要自己下載。當(dāng)然了這個(gè)模塊是支持python3,而且也比較穩(wěn)定,畢竟是大廠出品,用起來體驗(yàn)很不錯(cuò)。
PyMySQL
這個(gè)模塊是作者積極推薦的模塊,社區(qū)活躍,開源,支持pypi,由純python編寫,支持所有的Openstack標(biāo)準(zhǔn),應(yīng)該是py里現(xiàn)在最火的數(shù)據(jù)庫連接模塊了,而且可以在Django中替代MySqldb,用起來很不錯(cuò)。
下面是一個(gè)簡(jiǎn)單的表格對(duì)比

至于連接速度以及使用方法,這里就不多介紹了。
就先寫到這里吧!!
本博客暫時(shí)禁止轉(zhuǎn)載,強(qiáng)行轉(zhuǎn)載請(qǐng)表明出處,否則后果自負(fù)。