各位玩蛇的大佬都知道,使用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,用起来很不错。
下面是一个简单的表格对比
至于连接速度以及使用方法,这里就不多介绍了。
就先写到这里吧!!
欢迎关注浪涛博客,点击头像即可进入哦!
点关注,不迷路!!