如何在Polars+Connector-X中配置MySQL隔离级别及Python线程数
Polars + Connector-X 配置问题解答
1. MySQL 隔离级别配置
可以通过 Polars 的 read_database_uri() 配合 Connector-X 实现 READ UNCOMMITTED 隔离级别配置,核心是利用参数传递 MySQL 连接选项:
import polars as pl # 方式1:为整个连接会话设置隔离级别(推荐批量查询场景) df = pl.read_database_uri( uri="mysql+pymysql://user:password@host:port/your_db", query="SELECT * FROM target_table", engine="connectorx", connection_kwargs={"isolation_level": "READ UNCOMMITTED"} ) # 方式2:仅对当前查询事务临时生效 df = pl.read_database_uri( uri="mysql+pymysql://user:password@host:port/your_db", query="SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; SELECT * FROM target_table", engine="connectorx" )
2. 线程池与线程数配置
Connector-X 底层并非使用 Python 的 ThreadPoolExecutor,它基于 Rust 实现了独立的并行处理机制,性能比 Python 原生线程池更高效。
你可以手动配置查询线程数量,通过 engine_kwargs 参数传递 max_threads 给 Connector-X 的读取逻辑:
import polars as pl df = pl.read_database_uri( uri="mysql+pymysql://user:password@host:port/your_db", query="SELECT * FROM large_table", engine="connectorx", engine_kwargs={"max_threads": 8} # 根据CPU核心数和数据库并发限制调整 )
max_threads 建议设置为 CPU 核心数的 1-2 倍,避免过度占用数据库连接资源。
内容的提问来源于stack exchange,提问作者wedrano de carvalho
相关产品推荐
相关产品推荐

