各位玩蛇的大佬都知道,使用python連接數據庫是很平常的操作,而Django、各種ORM等模塊底層也必須用到這些數據庫依賴,但是MySqldb、mysql_connector、pymysql、OurSQL、mysqlclient是不是有點傻傻分不清,使用的時候到底應該選哪個?感覺蒙蒙的,下面就簡單說一下這些模塊的區別,以及現狀。
MySQL-Python
這里十分不推薦MySQL-Python,首先吐槽下MySQL-Python也就是MySqlDb。
1、環境不好安裝
特別是windows,(ubuntu黨請繞行)因為完全是用c實現的,所以必須安裝了mysql,才能裝上,需要mysql的底層庫,裝這個模塊就得裝個mysql,多霸道。當然在linux,你可以只把mysql的這個庫搞過來,就可以用了,但是折騰過好幾個windows環境后,對這個東西實在是深痛惡覺。
2、不支持py3
現在MySQL-Python不支持py3,當然據說可以打補丁,以某種神奇方式使用,因為肯定有蛋疼的大牛搗鼓,想折騰的小伙伴可以移駕google研究下,但是還是不推薦。
說說優點,不得不說的是,這個模塊對比其他mysql連接模塊穩定而且快速(雖然我并沒有感覺到),但是底層純用c實現的,肯定快,而且存在這么多年了,穩定是必須的。
mysqlclient
相信這個模塊大家應該用的或者聽說的比較少,但是這個模塊也是實實在在的數據庫連接模塊,這個是從MySQL-Python fork出來的,所以也是純c編寫,速度一流,穩定性一般,支持python3.3,這個的維護者和pymysql是同一群人哦。
OurMysql
這個同樣是由純c編寫的數據庫連接模塊,但是依然不支持py3.看到作者說2012.6.5支持,目測是坑了,沒用過這個模塊,不做介紹。不過如果對數據庫連接速度有極高要求的小伙伴,可以摸索用一下這個。
MySQL-Connector-Python
這個模塊和上面c編寫的就截然不同了,這個模塊完全由純python編寫,血統純正,也就是由此會比上面的三個模塊慢,但是這個模塊有個好爸爸,是由oracle所持有,而且傲嬌的oracle沒有把這個模塊放到pypi,所以你懂得,安裝要自己下載。當然了這個模塊是支持python3,而且也比較穩定,畢竟是大廠出品,用起來體驗很不錯。
PyMySQL
這個模塊是作者積極推薦的模塊,社區活躍,開源,支持pypi,由純python編寫,支持所有的Openstack標準,應該是py里現在最火的數據庫連接模塊了,而且可以在Django中替代MySqldb,用起來很不錯。
下面是一個簡單的表格對比
至于連接速度以及使用方法,這里就不多介紹了。
就先寫到這里吧!!
本博客暫時禁止轉載,強行轉載請表明出處,否則后果自負。