Tengo varias consultas que necesito ejecutar en MySQL DB usando python. Si tengo 3 consultas que se ejecutan 5 minutos cada una, se tarda aproximadamente un total de 15 minutos en ejecutar todas las consultas
¿Es posible ejecutar/disparar las 3 consultas al mismo tiempo usando subprocesos para que el tiempo de ejecución se reduzca a aproximadamente 5 minutos?
cuando intento subprocesos múltiples o procesamiento múltiple, obtengo el error como
OperationalError: 2013 (HY000): se perdió la conexión con el servidor MySQL durante la consulta
def connect(host,username,passwor,db_name): mysql_db = mysql.connector.connect( host = host, user = username, passwd = password, database = db_name ) cursor = mysql_db.cursor() return(cursor) def execute_query(cursor,query): cursor.execute(query) res = cursor.fetchall() que.put(res) query_1 = "select count(*) from db.table1" query_2 = "select count(*) from db.table2" query_3 = "select count(*) from db.table3" cursor = connect((host,username,passwor,db_name): threads = [] que = Queue.Queue() threads.append(Thread(target = execute_query, args = (cursor,query1,))) threads.append(Thread(target = execute_query, args = (cursor,query2,))) threads.append(Thread(target = execute_query, args = (cursor,query3,))) for thread in threads: thread.start() for thread in threads: threads.join() res = que.get()