各位玩蛇的大佬都知道,使用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,用起来很不错。
下面是一个简单的表格对比
至于连接速度以及使用方法,这里就不多介绍了。
就先写到这里吧!!
本博客暂时禁止转载,强行转载请表明出处,否则后果自负。