Inserte continuamente datos de imagen en la base de datos Mysql en Linux

En el rendimiento del software o las pruebas de estrés, es necesario ingresar datos continuamente a la base de datos del servidor para verificar si el servidor y el software de la aplicación pueden funcionar normalmente bajo una gran cantidad de IO. Este artículo presenta un método simple para insertar continuamente datos de imágenes en la base de datos Mysql.


Preparación

Instale el módulo pymysql

pip install pymysql

código fuente

#encoding=utf-8
import pymysql
import time
import string
import random

#图片路径(根据实际情况修改)示例如下:
picUrl = "/test/index.jpg"
#连接的数据库服务器主机名(根据实际情况修改)示例如下:
#conhost="127.0.0.1"
conhost="localhost"
#连接的数据库端口号(根据实际情况修改)示例如下:
conport=3306
#连接的数据库的用户名(根据实际情况修改)示例如下:
conuser="root"
#连接的数据库密码(根据实际情况修改)示例如下:
conpasswd="111111"
#连接的数据库名(根据实际情况修改)示例如下:
condb="test"

class BlobDataTestor:
    def __init__(self):
        #连接数据库
        self.conn = pymysql.connect(host=conhost,port=conport, user=conuser,passwd=conpasswd,db=condb)

    def __del__(self):
        try:
            self.conn.close()
        except:
            pass

    def closedb(self):
        self.conn.close()

    #创建表
    def setup(self):
        cursor = self.conn.cursor()
        cursor.execute("""  
            CREATE TABLE IF NOT EXISTS `Dem_Picture` (  
            `ID` int(11) NOT NULL auto_increment,
            `time` timestamp  ,
            `PicData` mediumblob,
            `RandomNum` varchar(20),
            PRIMARY KEY (`ID`)  
            ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;  
            """)
	
    #删除表
    def teardown(self):
        cursor = self.conn.cursor()
        try:
            cursor.execute("Drop Table Dem_Picture")
        except:
            pass
            # self.conn.commit()

    def testRWBlobData(self):
        # 读取源图片数据
        f = open(picUrl, "rb")
        b = f.read()
        f.close()

        # 生成随机数
        s = ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(10))

        # 将数据写入表
        cursor = self.conn.cursor()
        cursor.execute("INSERT INTO Dem_Picture (time,PicData,RandomNum) VALUES (current_timestamp,%s,%s)",((pymysql.Binary(b)),s))

if __name__ == "__main__":

    test = BlobDataTestor()

    try:
        #创建表
        test.setup()
        while 1:
            test.testRWBlobData()
            print "insert success"
            #time.sleep(1)	#根据需要设置插入时间间隔
        #删除表
        #test.teardown()
        
    finally:
        test.closedb()

Supongo que te gusta

Origin blog.csdn.net/crossoverpptx/article/details/131370544
Recomendado
Clasificación