免费Mysql或Python缓存
我用blob更新Mysql数据库。超过2000个斑点,它变得非常缓慢。(2000个水滴=44秒,3000个水滴=5分10秒)。我把这些斑点划入2000个名单,但没有用。我把它放在2000滴后睡觉,没有用。我怀疑这是缓存的问题(Python还是Mysql?)。谢谢你的帮助免费Mysql或Python缓存,python,mysql,caching,blob,Python,Mysql,Caching,Blob,我用blob更新Mysql数据库。超过2000个斑点,它变得非常缓慢。(2000个水滴=44秒,3000个水滴=5分10秒)。我把这些斑点划入2000个名单,但没有用。我把它放在2000滴后睡觉,没有用。我怀疑这是缓存的问题(Python还是Mysql?)。谢谢你的帮助 import mysql.connector from datetime import datetime import time start_time_update = datetime.now() connection=
import mysql.connector
from datetime import datetime
import time
start_time_update = datetime.now()
connection=mysql.connector.connect(user='root', password ='12345', database='sakila')
try:
cursor=connection.cursor()
sql=("select picture from staff where staff_id=1")
cursor.execute(sql)
result=cursor.fetchone()[0]
#Creating x pictures
for i in range(3000):
with open('Sortie/mon_fichier_blob_'+str(i)+'.jpg', 'wb') as f:
f.write(result)
sql=("CREATE TABLE IF NOT EXISTS test_2 (ID INT NOT NULL AUTO_INCREMENT, `ID_author` INT NULL,`ID_publisher` INT NULL, `Image` BLOB NULL, `nom` VARCHAR(200) NULL,PRIMARY KEY (ID));")
cursor.execute(sql)
connection.commit()
fileName = []
for i in range(3000):
id=0
id_aut= i**2
id_pub = i
img = None
nom='Sortie/mon_fichier_blob_'+str(i)+'.jpg'
tp=(id, id_aut,id_pub,img,nom)
fileName.append(tp)
for ind in fileName:
sql="""INSERT INTO test_2 VALUES (%s,%s,%s,%s,%s)"""
cursor.execute(sql,ind)
connection.commit()
album = dict()
for i in range(3000):
with open('Sortie/mon_fichier_blob_'+str(i)+'.jpg', 'rb') as f:
album['Sortie/mon_fichier_blob_'+str(i)+'.jpg']=f.read()
list_blob=[]
for key, value in album.items():
adq=(value, key)
list_blob.append(adq)
for blob in list_blob:
sql = """UPDATE test_2 SET Image = %s WHERE nom = %s"""
cursor.execute(sql, blob)
connection.commit()
finally:
connection.close()
time_elapsed_update = datetime.now() - start_time_update
print('Time elapsed Update Method (hh:mm:ss.ms) {}'.format(time_elapsed_update))
重新思考你的代码,这样它就不会试图在内存中存储成千上万的图像了。Thx,我确实有另一种方法,我插入它们而不是更新它们,插入曲线与斑点的数量成正比。我只是想了解为什么不需要更新。我想你不明白我的意思。。。想想你的
相册
dict,它消耗了多少内存,以及如何摆脱它。这不是解决办法。我清理了字典,使用了垃圾收集器,时间翻了一倍!我将坚持使用“插入”而不是“更新”。它的方式更快,它得到了工作完成!你仍然不明白这一点:你根本不需要这条命令——你也不需要文件名
和列表。