x86_64((Ubuntu))上Linux版python mysql 8.0.22-0ubuntu0.20.04.3版中的mysql性能问题

x86_64((Ubuntu))上Linux版python mysql 8.0.22-0ubuntu0.20.04.3版中的mysql性能问题,mysql,mysql-python,Mysql,Mysql Python,我正在制作一个数据库,它每秒钟至少需要500行条目 具体情况如下 [1,amit,"55555","2020-12-21 12:12:12"] import mysql.connector from queue import Queue from threading import Thread def do_stuff(q,mydb,mycursor): while True: # mycursor = myd

我正在制作一个数据库,它每秒钟至少需要500行条目 具体情况如下

[1,amit,"55555","2020-12-21 12:12:12"]
import mysql.connector
from queue import Queue
from threading import Thread




def do_stuff(q,mydb,mycursor):
      while True:
#             mycursor = mydb.cursor()
            a=  q.get()
            sql = "INSERT INTO list (id, ticker, price, tmp) VALUES (%s, %s, %s, %s)"
            val = (a[0], a[1],float(a[3]),a[2])
            mycursor.execute(sql, val)

            mydb.commit()
            q.task_done()

q = Queue(maxsize=0)
num_threads = 10 

for i in range(num_threads):
        mydb = mysql.connector.connect(host="localhost",user="root",password="password",database="list1",auth_plugin='mysql_native_password')
        mycursor = mydb.cursor()
        worker = Thread(target=do_stuff, args=(q,mydb,mycursor)) 
        worker.start()
        
        
def strt():
    for i in range(100000):
        a = [i,"name","154.55","2020-12-21 12:12:12"]
        q.put(a)
当我尝试使用pyhton中的队列和线程将其插入mysql时 它每秒仅插入150行

我的简历如下

[1,amit,"55555","2020-12-21 12:12:12"]
import mysql.connector
from queue import Queue
from threading import Thread




def do_stuff(q,mydb,mycursor):
      while True:
#             mycursor = mydb.cursor()
            a=  q.get()
            sql = "INSERT INTO list (id, ticker, price, tmp) VALUES (%s, %s, %s, %s)"
            val = (a[0], a[1],float(a[3]),a[2])
            mycursor.execute(sql, val)

            mydb.commit()
            q.task_done()

q = Queue(maxsize=0)
num_threads = 10 

for i in range(num_threads):
        mydb = mysql.connector.connect(host="localhost",user="root",password="password",database="list1",auth_plugin='mysql_native_password')
        mycursor = mydb.cursor()
        worker = Thread(target=do_stuff, args=(q,mydb,mycursor)) 
        worker.start()
        
        
def strt():
    for i in range(100000):
        a = [i,"name","154.55","2020-12-21 12:12:12"]
        q.put(a)
如果有人建议提高性能或任何其他方法来加快编写速度


请让我知道谢谢你

你是否能够批量插入并使用
光标。executemany
?@snakecharmerb实际数据是实时的,我希望在mysql中插入,如果批量可能的话。请让我知道你是否能够批量插入并使用
光标。executemany
?@snakecharmerb实际数据是实时的我想在mysql中插入,如果可能的话,请让我知道