各位玩蛇的大佬都知道耻矮,使用python連接數(shù)據(jù)庫是很平常的操作忧吟,而Django被啼、各種ORM等模塊底層也必須用到這些數(shù)據(jù)庫依賴,但是MySqldb试躏、mysql_connector猪勇、pymysql、OurSQL颠蕴、mysqlclient是不是有點(diǎn)傻傻分不清泣刹,使用的時候到底應(yīng)該選哪個?感覺蒙蒙的犀被,下面就簡單說一下這些模塊的區(qū)別椅您,以及現(xiàn)狀。
MySQL-Python
這里十分不推薦MySQL-Python弱判,首先吐槽下MySQL-Python也就是MySqlDb襟沮。
1、環(huán)境不好安裝
特別是windows昌腰,(ubuntu黨請繞行)因為完全是用c實現(xiàn)的,所以必須安裝了mysql膀跌,才能裝上遭商,需要mysql的底層庫,裝這個模塊就得裝個mysql捅伤,多霸道劫流。當(dāng)然在linux,你可以只把mysql的這個庫搞過來丛忆,就可以用了祠汇,但是折騰過好幾個windows環(huán)境后,對這個東西實在是深痛惡覺熄诡。
2可很、不支持py3
現(xiàn)在MySQL-Python不支持py3,當(dāng)然據(jù)說可以打補(bǔ)丁凰浮,以某種神奇方式使用我抠,因為肯定有蛋疼的大牛搗鼓苇本,想折騰的小伙伴可以移駕google研究下,但是還是不推薦菜拓。
說說優(yōu)點(diǎn)瓣窄,不得不說的是,這個模塊對比其他mysql連接模塊穩(wěn)定而且快速(雖然我并沒有感覺到)纳鼎,但是底層純用c實現(xiàn)的俺夕,肯定快,而且存在這么多年了贱鄙,穩(wěn)定是必須的劝贸。
mysqlclient
相信這個模塊大家應(yīng)該用的或者聽說的比較少,但是這個模塊也是實實在在的數(shù)據(jù)庫連接模塊贰逾,這個是從MySQL-Python fork出來的悬荣,所以也是純c編寫,速度一流疙剑,穩(wěn)定性一般氯迂,支持python3.3,這個的維護(hù)者和pymysql是同一群人哦言缤。
OurMysql
這個同樣是由純c編寫的數(shù)據(jù)庫連接模塊嚼蚀,但是依然不支持py3.看到作者說2012.6.5支持,目測是坑了管挟,沒用過這個模塊轿曙,不做介紹。不過如果對數(shù)據(jù)庫連接速度有極高要求的小伙伴僻孝,可以摸索用一下這個导帝。
MySQL-Connector-Python
這個模塊和上面c編寫的就截然不同了,這個模塊完全由純python編寫穿铆,血統(tǒng)純正您单,也就是由此會比上面的三個模塊慢,但是這個模塊有個好爸爸荞雏,是由oracle所持有虐秦,而且傲嬌的oracle沒有把這個模塊放到pypi,所以你懂得凤优,安裝要自己下載悦陋。當(dāng)然了這個模塊是支持python3,而且也比較穩(wěn)定筑辨,畢竟是大廠出品俺驶,用起來體驗很不錯。
PyMySQL
這個模塊是作者積極推薦的模塊挖垛,社區(qū)活躍痒钝,開源秉颗,支持pypi,由純python編寫送矩,支持所有的Openstack標(biāo)準(zhǔn)蚕甥,應(yīng)該是py里現(xiàn)在最火的數(shù)據(jù)庫連接模塊了,而且可以在Django中替代MySqldb栋荸,用起來很不錯菇怀。
下面是一個簡單的表格對比
至于連接速度以及使用方法,這里就不多介紹了晌块。
就先寫到這里吧0怠!
本博客暫時禁止轉(zhuǎn)載匆背,強(qiáng)行轉(zhuǎn)載請表明出處呼伸,否則后果自負(fù)。