mysql - python mysql Ver 8.0.22-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu)) 中的 mysql 性能问题
问题描述
我正在制作一个每秒至少需要 500 行条目的数据库,如下所示
[1,amit,"55555","2020-12-21 12:12:12"]
当我尝试使用队列和线程在 pyhton 中将其插入 mysql 时,它每秒仅插入 150 行
我的代码如下
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)
如果有人建议提高性能或任何其他方法可以更快地编写
请告诉我谢谢
解决方案
推荐阅读
- javascript - React - ref 的当前函数在 if 语句上失败
- python - 阅读所有工作表擅长 python
- python - 操作系统无法加载图像 pygame.error: 无法打开 imgs\pipe.png
- c++ - C++ 分段错误——自平衡树插入
- scheme - repl.it 方案中缺少函数?
- javascript - Vue js中嵌套数组的总数
- python - Clean way to combine list of lists into a dictionary?
- google-maps-markers - 在谷歌地图 api 上显示 50,000 个标记的最佳方法是什么
- image-processing - 如何解码 exif UserComment?
- javascript - 使用 Symfony 进程从 Laravel 执行时出现 Nodejs 错误