python3 mysql-connector与pymysql

本文探讨了Python中两种常用的MySQL数据库连接库——mysql.connector和pymysql,包括它们的使用方法、优缺点及适用场景。通过实例代码展示了如何使用这两个库进行数据库操作,帮助开发者选择合适的工具。

mysql.connector

#先安装mysql-connector:pip install mysql-connector

import mysql.connector

#1)数据库查询
#连接数据库
conn=mysql.connector.connect(
    host="localhost",
    user="root",
    password="1234",
    database="test"
)
print(conn)
cmd=conn.cursor()  #获取光标行
cmd.execute("show databases")  #执行语句
for i in cmd:
    print(i)
cmd.execute("select * from student ")

# rus=cmd.fetchall()  #抓取所有的数据
# print(rus)
rus2=cmd.fetchone(<
### 比较 `mysql-connector-python` 和 `PyMySQL` #### 功能特性 `mysql-connector-python` 是由 Oracle 官方提供的用于 PythonMySQL 驱动程序,支持多种协议并提供丰富的功能集[^2]。而 `PyMySQL` 则是一个纯 Python 实现的 MySQL 客户端库,具有轻量级的特点。 对于事务处理和支持方面: - `mysql-connector-python` 支持多语句执行以及更复杂的查询操作,并且能够更好地兼容最新的 MySQL 版本和特性。 - `PyMySQL` 同样可以很好地完成基本的数据读写任务,在某些情况下可能更加简洁易用[^1]。 #### 使用方式对比 ##### 连接数据库 两者都提供了相似的方法来创建到 MySQL 数据库的连接对象,但是参数有所不同。 使用 `mysql-connector-python` 创建连接: ```python import mysql.connector connection = mysql.connector.connect( host=&#39;localhost&#39;, user=&#39;root&#39;, password=&#39;password&#39;, database=&#39;testdb&#39; ) ``` 使用 `PyMySQL` 创建连接: ```python import pymysql connection = pymysql.connect( host=&#39;localhost&#39;, user=&#39;root&#39;, password=&#39;password&#39;, db=&#39;testdb&#39;, charset=&#39;utf8mb4&#39;, cursorclass=pymysql.cursors.DictCursor ) ``` 可以看到,虽然两个库都能实现相同的功能,但在具体配置上存在差异,比如 `charset` 参数仅存在于 `PyMySQL` 中;另外就是默认游标的类型也不同,默认情况下 `mysql-connector-python` 返回元组列表形式的结果集,而 `PyMySQL` 可以通过设置 `cursorclass` 来指定返回字典格式的结果集。 #### 性能表现 通常来说,由于 `mysql-connector-python` 更接近底层 C 库 (`libmysqlclient`) ,所以在性能上有一定优势。不过实际应用中这种差距往往并不明显,除非是在高并发场景下才会有所体现。另一方面,因为 `PyMySQL` 是完全基于 Python 编写的,所以更容易调试和理解其内部工作原理。 #### 社区支持维护情况 官方发布的 `mysql-connector-python` 得到了更好的技术支持和服务保障,文档齐全,更新频率较高。相比之下,尽管 `PyMySQL` 也有活跃的开发者社区贡献代码修复 bug 并增加新功能,但由于不是来自 MySQL 自身团队开发的产品,在企业环境中可能会被认为不如前者稳定可靠。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值