Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
免费Mysql或Python缓存_Python_Mysql_Caching_Blob - Fatal编程技术网

免费Mysql或Python缓存

免费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=

我用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=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,它消耗了多少内存,以及如何摆脱它。这不是解决办法。我清理了字典,使用了垃圾收集器,时间翻了一倍!我将坚持使用“插入”而不是“更新”。它的方式更快,它得到了工作完成!你仍然不明白这一点:你根本不需要这条命令——你也不需要
文件名
列表。