Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于相同的查询,MySQL Workbench比Python快得多_Python_Mysql - Fatal编程技术网

对于相同的查询,MySQL Workbench比Python快得多

对于相同的查询,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

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'
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()