【发布时间】:2016-04-25 03:06:38
【问题描述】:
我正在使用 pandas 来读取 mysql 表。但是,通常在 read_sql 语句之后,我会在表上获得表锁。以下是查询,
mysql_cn= MySQLdb.connect(host='localhost', port=3306,user='root',passwd='mysql', db='DB_P001')
dfVars = pd.read_sql('select * from markeff_5_varlist', con=mysql_cn, chunksize = 10)
一旦我运行 dfVars 数据框就会被填充,但是 mysql 中有一个读锁。这种锁定一直持续到 mysql 重新启动。
--------------
ROW OPERATIONS
--------------
0 queries inside InnoDB, 0 queries in queue
1 read views open inside InnoDB
Main thread process no. 2567, id 140597860407040, state: sleeping
Number of rows inserted 0, updated 0, deleted 0, read 11494
0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 3.31 reads/s
----------------------------
END OF INNODB MONITOR OUTPUT
============================
非常感谢您的帮助。
谢谢,
【问题讨论】:
-
能否先尝试使用
sqlalchemy进行连接,看看是否还有同样的问题?请参阅pandas.pydata.org/pandas-docs/stable/io.html#sql-queries 了解如何将 sqlalchemy 引擎用于read_sql -
您正在使用
chunksize = 10- 它太小了,除此之外:If specified, return an iterator where chunksize is the number of rows to include in each chunk。所以你以一种非常奇怪的方式使用它
标签: python mysql python-2.7 pandas dataframe