对于相同的查询,MySQL Workbench比Python快得多
MySQL Workbench中的以下查询需要0.156秒才能完成:对于相同的查询,MySQL Workbench比Python快得多,python,mysql,Python,Mysql,MySQL Workbench中的以下查询需要0.156秒才能完成: SELECT date, time, minute_price_id FROM minute_prices WHERE contract_id = 673 AND TIMESTAMP(date, time) >= '2013-05-15 13:15:00' AND TIMESTAMP(date, time) <= '2015-02-23 13:15:00' LI
SELECT
date, time, minute_price_id
FROM
minute_prices
WHERE
contract_id = 673 AND
TIMESTAMP(date, time) >= '2013-05-15 13:15:00' AND
TIMESTAMP(date, time) <= '2015-02-23 13:15:00'
LIMIT 1000000;
选择
日期、时间、分钟\u价格\u id
从…起
分钟价格
哪里
合同编号=673,且
时间戳(日期、时间)>=“2013-05-15 13:15:00”和
时间戳(日期,时间)我可以想出几个理由来解释这一点:
Python必须启动,而您已经在运行workbench了
Python必须加载您的程序,而workbench则不能
Python必须打开到数据库的连接,而workbench(我假设)已经有了一个连接
为了解决这个问题,请尝试使用timeit python模块(或手动计时),并且只包含execute/fetchall命令。关于限制1000000行如何?
?只返回55000行。我只是将它添加到工作台上,以确保我在比较苹果与苹果。将限制降低到例如5000-如果差异变小,您可以非常确定这是传输速度。是的,限制为5000的Python速度快10倍(因为它也小10倍),但MySQL的比率保持不变(慢20倍).import MySQLdb.cursors self.db=MySQLdb.connect(host=“localhost”,user=“root”,passwd=“”,db=“ibeat”,cursorclass=MySQLdb.cursors.SSCursor)尝试以下操作
import mysql.connector
con = mysql.connector.connect(...)
cur = con.cursor()
sql = \
"""
SELECT
date, time, minute_price_id
FROM
minute_prices
WHERE
contract_id = 673 AND
TIMESTAMP(date, time) >= '2013-05-15 13:15:00' AND
TIMESTAMP(date, time) <= '2015-02-23 13:15:00'
"""
cur.execute(sql)
cur.fetchall()