SuperAPI AI 工具集

python-pymysql

编程与开发

查看项目

更新于 10-16 04:29

技能介绍

用途:在 Python 中连接并操作 MySQL/MariaDB,执行查询、写入、事务与批量插入。

安装:pip install PyMySQL;如需 SHA-256 / caching_sha2_password 认证,使用 pip install "PyMySQL[rsa]"。

主要能力:通过 pymysql.connect() 建立连接,建议设置 charset='utf8mb4',并用上下文管理器保证资源清理。连接参数包括 cursorclass、autocommit(默认 False)、connect_timeout、read_timeout、write_timeout、ssl_ca 等。游标类型有 Cursor(元组)、DictCursor(字典)、SSCursor 与 SSDictCursor(非缓冲,适合大结果集流式读取)。

用法要点:始终使用参数化查询,把值作为 execute() 的第二个参数传入,禁止字符串拼接;支持 %s 与 %(name)s 命名占位符,可用 cursor.mogrify() 调试预览。事务默认不自动提交,需显式 commit()/rollback(),也可用 connection.begin()。批量写入用 executemany(),按 max_stmt_length(1 MB)分批。读取用 fetchone()、fetchmany(size)、fetchall(),大表建议用 SSCursor 迭代而非 fetchall()。长连接可用 connection.ping(reconnect=True) 做健康检查。凭据可通过 read_default_file 从 ~/.my.cnf 读取,避免硬编码。

错误处理:捕获 pymysql.err 下的 IntegrityError(约束冲突)、OperationalError(连接/服务器错误)、ProgrammingError(SQL 语法或参数数量错误)、DataError(数据类型不合法)等。

限制:资料未提供连接池实现细节、性能基准、收费与平台支持范围;with connection 只处理提交/回滚,不会关闭连接,需显式 close() 或交由连接池管理。