gpt4 book ai didi

python - 改善 MySQL 读取时间,MySQLdb

转载 作者:行者123 更新时间:2023-11-30 23:20:56 27 4
gpt4 key购买 nike

我有一个包含超过一百万条记录的表,其结构如下:

mysql> SELECT * FROM Measurement;
+----------------+---------+-----------------+------+------+
| Time_stamp | Channel | SSID | CQI | SNR |
+----------------+---------+-----------------+------+------+
| 03_14_14_30_14 | 7 | open | 40 | -70 |
| 03_14_14_30_14 | 7 | roam | 31 | -79 |
| 03_14_14_30_14 | 8 | open2 | 28 | -82 |
| 03_14_14_30_15 | 8 | roam2 | 29 | -81 |....

我正在将此表中的数据读入 python 以进行绘图。问题是,MySQL 读取速度太慢,即使使用MySQLdb.cursors.SSCursor(正如本论坛中一些人所建议的那样)以加快任务速度。

con = mdb.connect('localhost', 'testuser', 'conti', 'My_Freqs', cursorclass = MySQLdb.cursors.SSCursor);
cursor=con.cursor()
cursor.execute("Select Time_stamp FROM Measurement")
for row in cursor:
... Do processing ....

规范化表格会帮助我加快任务速度吗?如果是这样,我应该如何规范化它?

P.S: 这是 EXPLAIN 的结果

+------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| Time_stamp | varchar(128) | YES | | NULL | |
| Channel | int(11) | YES | | NULL | |
| SSID | varchar(128) | YES | | NULL | |
| CQI | int(11) | YES | | NULL | |
| SNR | float | YES | | NULL | |
+------------+--------------+------+-----+---------+-------+

最佳答案

问题可能是您在游标上循环,而不是一次转储所有数据然后进行处理。您应该能够在几秒钟内转储出几百万行。尝试做类似的事情

cursor.execute("select Time_stamp FROM Measurement")
data = cusror.fetchall()
for row in data:
#do some stuff...

关于python - 改善 MySQL 读取时间,MySQLdb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15480593/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com