x86_64((Ubuntu))上Linux版python mysql 8.0.22-0ubuntu0.20.04.3版中的mysql性能问题
我正在制作一个数据库,它每秒钟至少需要500行条目 具体情况如下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
[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中插入,如果可能的话,请让我知道