我有一个
MySQL
数据库,特别是版本 8.0.33
,我正在寻求使用 Python 建立连接。在 pymysql
、MySQL Connector
和 pyodbc
等可用选项中,我对使用 Python 脚本在表中处理 inserting/updating
数据的最有效方法感兴趣。在进行这些操作时,这些连接器之间的速度或性能是否存在显着差异?
您能否对这些连接器进行比较分析,或者提出通过 Python 脚本提高 MySQL 表插入和更新速度的策略?
没有太大区别,因为 MySQL Server 不支持批量操作:
虽然可以使用多值语法重写批量插入(INSERT INTO table VALUES (val1),(val2),...,val(n)),但 UPDATE 和 DELETE 语句需要执行 n 个 SQL 命令。
这意味着大部分时间都花在网络操作和服务器端处理每个单独的 SQL 语句上,而不是花在 python 模块本身上。
这不是答案,但另一种选择是将 MariaDB Server 与 MariaDB Connector/Python 一起使用,它们都支持本机批处理操作。当从 MariaDB Connector/Python 运行基准测试时,更新/删除速度大约快 10 倍(客户端和服务器在不同的机器上运行)。